#include//c++头文件 using namespace std; #define LIST_INIT_SIZE 20 //预定义常量 #define LISTINCREMENT 5 #define OK 1 #define ERROR 0 typedef int ElemType; //定义类型 typedef int Status; typedef struct //线性表结构体定义 { ElemType *elem; int length; int listsize; }SqList; Status InitList_Sq(SqList &L) //创建空的线性表 { L.elem=new ElemType[LIST_INIT_SIZE]; //申请空间 L.length=0; //令表中数据长度为零 L.listsize=LIST_INIT_SIZE; //将所申请的空间给予元素空间 return OK; } Status CreateList_Sq(SqList &L,int n) //创建一个线性表 { int i; InitList_Sq(L); //创建空表 if(n>L.listsize) //保证空间足够 { //续开辟空间 } L.length=n; cout<<"please input "< >L.elem[i]; return OK; } Status OutputList_Sq(SqList L) //输出线性表 { int i; cout<<"The list is:"; for(i=0;i L.length+1) // (1)判断插入元素下标i的合法性(1---L.length+1) return ERROR; if(L.length>=L.listsize) //判断空间是否够用 { //续开辟空间 } for(j=L.length-1;j>=i-1;j--) // (2) 下标L.length-1----i-1的元素,后移一个位置 L.elem[j+1]=L.elem[j]; L.elem[i-1]=e; // (3) 插入e(下标i-1) L.length++; // (4) 数据元素长度加一 return OK; } Status ListDelete_Sq(SqList &L,int i,ElemType &e) //删除元素,并用e返回该数据 { int *p,*q; if(i<1||i>L.length) // (1) 判断插入元素下标i的合法性(1---L.length+1) return ERROR; p=&(L.elem[i-1]); // (2) 取第i个元素的地址,并用e取其中数据 e=*p; q=L.elem+L.length-1; //最后(表尾)元素的位置 for(++p;p<=q;++p) *(p-1)=*p; // (3) 元素依次左移 --L.length; // (4) 元素长度减一 return e; } Status ListLength_Sq(SqList &L) //求元素长度 { int i,p=0; for(i=0;i L.length) return ERROR; else{ p=&(L.elem[i-1]); e=*p; } return e; } Status DestroyList(SqList &L) //销毁线性表 { free(L.elem); //释放空间 L.elem=NULL; L.length=0; L.listsize=0; cout<< "线性表已销毁! "< 创新互联主要从事网站制作、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务修武,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:数据结构-线性表操作-创新互联
转载来于:http://cxhlcq.com/article/cooeei.html