第三周项目一(3) 线性表的修改
2017-09-20 19:08
141 查看
问题及代码
/*
*Copyright(c)2017,烟台大学计算机学院
*All right reserved.
*文件名:main.cpp list.h list.cpp
*作者:王万兴
*完成日期:2017年9月20日
*版本号:v1.0
*
*问题描述:线性表的修改
*输入描述:无
*程序输出:见窗口
*/
#include "list.h"
#include "stdio.h"
int main()
{
SqList *sq;
InitList(sq);
ListInsert(sq, 1, 5);
ListInsert(sq, 2, 3);
ListInsert(sq, 1, 4);
DispList(sq);
return 0;
}
void InitList(SqList *&L) //引用型指针
{
L=(SqList *)malloc(sizeof(SqList));
//分配存放线性表的空间
L->length=0;
}
void DestroyList(SqList *&L)
{
free(L);
}
bool ListInsert(SqList *&L,int i,ElemType e)
{
int j;
if (i<1 || i>L->length+1)
return false; //参数错误时返回false
i--; //将顺序表逻辑序号转化为物理序号
for (j=L->length; j>i; j--) //将data[i..n]元素后移一个位置
L->data[j]=L->data[j-1];
L->data[i]=e; //插入元素e
L->length++; //顺序表长度增1
return true; //成功插入返回true
}
bool ListDelete(SqList *&L,int i,ElemType &e)
{
int j;
if (i<1 || i>L->length) //参数错误时返回false
return false;
i--; //将顺序表逻辑序号转化为物理序号
e=L->data[i];
for (j=i; j<L->length-1; j++) //将data[i..n-1]元素前移
L->data[j]=L->data[j+1];
L->length--; //顺序表长度减1
return true; //成功删除返回true
}运行结果
知识点总结
线性表元素的插入有三种情况,在头插入,在尾插入和中间插入,相应的要移动插入元素后面元素的位置,尾插不需要移动。
/*
*Copyright(c)2017,烟台大学计算机学院
*All right reserved.
*文件名:main.cpp list.h list.cpp
*作者:王万兴
*完成日期:2017年9月20日
*版本号:v1.0
*
*问题描述:线性表的修改
*输入描述:无
*程序输出:见窗口
*/
#include "list.h"
#include "stdio.h"
int main()
{
SqList *sq;
InitList(sq);
ListInsert(sq, 1, 5);
ListInsert(sq, 2, 3);
ListInsert(sq, 1, 4);
DispList(sq);
return 0;
}
void InitList(SqList *&L) //引用型指针
{
L=(SqList *)malloc(sizeof(SqList));
//分配存放线性表的空间
L->length=0;
}
void DestroyList(SqList *&L)
{
free(L);
}
bool ListInsert(SqList *&L,int i,ElemType e)
{
int j;
if (i<1 || i>L->length+1)
return false; //参数错误时返回false
i--; //将顺序表逻辑序号转化为物理序号
for (j=L->length; j>i; j--) //将data[i..n]元素后移一个位置
L->data[j]=L->data[j-1];
L->data[i]=e; //插入元素e
L->length++; //顺序表长度增1
return true; //成功插入返回true
}
bool ListDelete(SqList *&L,int i,ElemType &e)
{
int j;
if (i<1 || i>L->length) //参数错误时返回false
return false;
i--; //将顺序表逻辑序号转化为物理序号
e=L->data[i];
for (j=i; j<L->length-1; j++) //将data[i..n-1]元素前移
L->data[j]=L->data[j+1];
L->length--; //顺序表长度减1
return true; //成功删除返回true
}运行结果
知识点总结
线性表元素的插入有三种情况,在头插入,在尾插入和中间插入,相应的要移动插入元素后面元素的位置,尾插不需要移动。
相关文章推荐
- 第三周项目1(3)对线性表的修改
- 第三周项目三修改
- 第三周项目1(2)对线性表的查看
- 第三周项目4(修改)-玩时间修改
- 第三周项目2- 建设“线性表”算法库
- 第三周项目一(2) 对线性表的查看
- 项目实训第三周(2)--信息维护模块编码之个人信息修改
- 第三周项目二 - 建设“线性表”算法库
- 第三周项目四 线性表的应用
- 第三周—项目1顺序表的基本运算
- 在mfc中使用cef实现webkit的浏览器(二)-修改项目属性
- TortoiseSVN修改本地项目中的svn服务器ip
- 第三周项目4:穷举法解决组合问题(2)换分币
- php第一个小项目中途修改计划
- Android 正确修改项目包名而不报错的方法...
- 改进银行项目2(Code::Blocks能进行的在C++6.0中不能进行的 进行修改)
- 创建maven项目,如何修改其jdk默认版本
- XCode 亲试最简便的修改项目名称
- eclipse 项目修改和更新项目,回退版本,解决分支的冲突的办法
- 如何修改TOMCAT的默认主页为你自己项目的主页 (WEB开发)