C++顺序表的基本操作
2015-09-14 08:56
302 查看
C++顺序表的基本操作
1.由a的n个元素建立顺序表
2.初始化顺序表
3.销毁顺序表
4.判断顺序表是否是空表,若为空返回TRUE,否则返回FALSE
5.求顺序表的长度
6.输出顺序表
6.在顺序表的第i个位置前,插入元素x,表满返回-1,成功返回1,无法插入返回0
7.获取顺序表的第i个元素的值,若第i个元素的值存在则将其赋值给m,返回TRUE,否则返回FALSE
8.按元素值查找,若在顺序表中查找到元素x,择返回x第一次出现的序号,否则返回0
9.删除顺序表的第i个元素,成功删除返回TRUE,没有成功删除返回FALSE
1.由a的n个元素建立顺序表
2.初始化顺序表
3.销毁顺序表
4.判断顺序表是否是空表,若为空返回TRUE,否则返回FALSE
5.求顺序表的长度
6.输出顺序表
6.在顺序表的第i个位置前,插入元素x,表满返回-1,成功返回1,无法插入返回0
7.获取顺序表的第i个元素的值,若第i个元素的值存在则将其赋值给m,返回TRUE,否则返回FALSE
8.按元素值查找,若在顺序表中查找到元素x,择返回x第一次出现的序号,否则返回0
9.删除顺序表的第i个元素,成功删除返回TRUE,没有成功删除返回FALSE
int const Maxsize = 40; typedef int DateType; typedef struct { DateType data[Maxsize]; int length; }SeqList; void Creat_SeqList(SeqList* L,DateType a[],int n )//由a的n个元素建立顺序表 { int i; L = (SeqList*)malloc(sizeof(SeqList)); for (i = 0; i < n;i++) { L->data[i] = a[i]; } L->length = n; } SeqList* Init_SeqList(SeqList* L)//初始化顺序表 { L = (SeqList*)malloc(sizeof(SeqList)); L->length = 0; return L; } void Destroy_SeqList(SeqList* L)//销毁顺序表 { free(L); } bool SeqList_IsEmpty(SeqList* L)//判断顺序表是否是空表,若为空返回TRUE,否则返回FALSE { return(L->length == 0); } int SeqList_Length(SeqList* L)//求顺序表的长度 { return(L->length); } void Disp_SeqList(SeqList* L)//输出顺序表 { int i; for (i = 0; i < L->length; i++) { cout << L->data[i] << endl; } } int Insert_SeqList(SeqList* L,int i,DateType x )//在顺序表的第i个位置前,插入元素x,表满返回-1,成功返回1,无法插入返回0 { if (L->length==Maxsize)//表满无法插入 { cout << "顺序表已满,无法插入" << endl; return -1; } else if (i<0||i>L->length)//检查插入的位置是否正确 { cout << "插入位置错误" << endl; return 0; } else//在第i个元素之前插入元素x { int j; for (j = i; j < L->length;) { L->data[++j] = L->data[i++]; } L->data[j] = x; return 1; } } bool Get_SeqList_Elem(SeqList* L,int i,DateType m)//获取顺序表的第i个元素的值,若第i个元素的值存在则将其赋值给m,返回TRUE,否则返回FALSE { if (i>0&&i<L->length)//成功找到第n个元素的值 { m=L->data[i]; return true; } else { cout <<"找不到第" <<i<<"个元素"<< endl; return false; } } int Indexof_SeqList_Elem(SeqList* L, DateType x)//按元素值查找,若在顺序表中查找到元素x,择返回x第一次出现的序号,否则返回0 { for (int i = 1; i < L->length;i++) { if (x==L->data[i]) { return i+1; } } cout << "没有查找到" << x << endl; return 0; } bool Deleat_SeqList_Elem(SeqList* L,int i)//删除顺序表的第i个元素,成功删除返回TRUE,没有成功删除返回FALSE { if (i > 0 && i < L->length) { for (int j = i; j < L->length; j++) { L->data[j++] = L->data[++i]; } return true; } else return false; }
相关文章推荐
- C++优先级20150909
- C++静态成员函数小结(转)
- c语言迷宫游戏的实现
- C语言-排序-希尔排序
- C语言-排序-选择排序
- C语言-排序-归并排序
- C语言-排序-插入排序
- C语言-排序-冒泡排序
- C语言-排序-快速排序
- c语言实现傅里叶级数展开
- c语言实现傅里叶级数展开
- 几种快速傅里叶变换(FFT)的C++实现
- 几种快速傅里叶变换(FFT)的C++实现
- [c++元编程一] 介绍
- Intelligent IME
- Faulty Odometer
- c语言生成zigzag矩阵
- 小白初学C++ PRIMER 第五版 第三章
- C++故障排除-VS2010 error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmai
- C/C++中问号冒号表达式的陷阱