本文共 1697 字,大约阅读时间需要 5 分钟。
线性表是最常用且最简单的一种数据结构。简言之,一个线性表是n个数据元素的有限序列。
在数据元素的非空有限集合中
顺序表示的是用一组地址连续的存储单元依次存储线性表的数据元素
以下是C++的实现过程 注:C语言不可使用引用#include#include #define SIZE 5//顺序表大小#define ElemType int//元素数据类型using namespace std;typedef struct List{ ElemType *elem;//存储空间基地址(动态数组) int length;//数组长度 int size;//数组大小}list;//初始化顺序表Lint InitList(list &L);//在顺序L中第i个位置插入NewElem元素int InsertList(list &L,int i,ElemType NewElem);//删除顺序表L中第i个位置上的元素,并将其值保存到常量DelElemint DeleteList(List &L,int i,ElemType &DelElem);//修改顺序表L中第i个位置元素为NewElem元素int AmendList(list &L,int i,ElemType NewElem);//查询顺序表L中元素e的位置(返回查询位置)int SelectList(list L,ElemType e);//遍历顺序表void Display(list L);int main(){ list L; ElemType DelElem; InitList(L); cout<<"定义初始值:"< L.length+1){ cout<<"插入位置不合法"< = L.size){ //使用新变量分配空间用来if判断是否分配成功,很多人使用的L.elem = (ElemType*)realloc...,即便判断也是为真 ElemType *newbase = (ElemType*)realloc(L.elem, (L.size+1)*sizeof(ElemType)); if(!newbase){ printf("内存分配失败\n"); exit(-1); } L.elem = newbase;//新基址 L.size++; } //为插入变量,元素后移 for(int p=L.length-1; p>=i-1; p--){ L.elem[p+1] = L.elem[p]; } L.elem[i-1] = NewElem; L.length++; return 1;}//在顺序表L中删除第i个元素,并返回其值eint DeleteList(List &L,int i,ElemType &e){ if(i<1 || i>L.length){ cout<<"删除位置不合法!"< L.length){ cout<<"更改的位置有误!"<
运行结果:
定义初始值:1 2 3 4 5 在第2个位置插入元素35:1 35 2 3 4 5 删除第3个元素的值为:21 35 3 4 5 更改第五个位置的元素为33:1 35 3 4 33 查询元素3的位置:3
转载地址:http://tnqen.baihongyu.com/