网站大量收购独家精品文档,联系QQ:2885784924

顺序线性表基本操作.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
顺序线性表基本操作

//顺序线性表#includeiomanip#includeiostream#include stringusing namespace std;#define LIST_SIZE 10#define LISTINCREMENT 2#define OVERFLOW -2#define OK 1#define ERROR 0typedef int Bool;typedef int elemtype;typedef int status;typedef struct{elemtype *elem;int length;int listsize;}sqlist;status initlist_sq(sqlist L) // 创建一个空表 {L.elem=(elemtype *)malloc(LIST_SIZE*sizeof(elemtype));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_SIZE;return OK;}status insertlist_sq(sqlist L,int i,elemtype e) // 插入元素{elemtype *p,*q;if(i1||iL.length+1)return ERROR;if(L.length=L.listsize){L.elem=(elemtype *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(elemtype));if(!L.elem)exit(OVERFLOW);L.listsize+=LISTINCREMENT;}q=(L.elem[i-1]);for(p=(L.elem[L.length-1]);p=q;p--)*(p+1)=*p;*q=e;L.length++;return OK;}status dellist_sq(sqlist L,elemtype i,elemtype e)// 删除元素{elemtype *p,*q;if(i1||iL.length)return ERROR;p=(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(p++;p=q;p++)*(p-1)=*p;L.length--;return OK;}status Locateelem_sq(sqlist L,elemtype e)// 查找元素{int i;elemtype *p;i=1;p=L.elem;for(;i=L.length;i++,p++){if(*p==e)return i;}return ERROR;}void mainn(void){cout请选择需要的操作:\n1:创建线性表\n2:显示线性表\n3:插入元素\n4:删除元素\n5:查找元素\n6:退出\n;}void build(sqlist L){if(!initlist_sq(L))exit(OVERFLOW);}void shuru(sqlist L) // 输入数据{int i,n;cout请输入元素个数:\n;cinn;cout请输入元素:\n;for(i=0;in;i++)cinL.elem[i];L.length=n;cout建立线性表成功!endlendl;}int empty(sqlist L) // 判断表是否为空{if(L.length==0)return OK;elsereturn ERROR;}status shuchu(sqlist L) // 遍历输出{int i;if(empty(L))cout表为空\n\n;else{for(i=0;iL.length;i++)coutsetw(5)L.elem[i];coutendlendl;return OK;}return 0;}void insert(sqlist L){elemtype j,k;cout请输入要插入的位置和该元素:\n;cinjk;if(insertlist_sq(L,j,k))// 调用插入函数cout插入成功!\n\n;elsecout插入失败!\n\n;}void del(sqlist L){elemtype i,e;cout请输入要删除元素的位置:\n;cini;if(dellist_sq(L,i,e)==1)//调用删除函数cout删除成功!删除的元素为:eendlendl;elsecout删除失败!\nendl;}void chazhao(sqlist L) {elemtype e,k;cout请输入要查找的元素:\n;cine;k=Locateelem_sq(L,e);//调用查找函数if(k)coute是表中的第k个元素endlendl

文档评论(0)

dart001 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档