




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 线性表的顺序表示#include iostream#include malloc.husing namespace std;typedef structint *elem;int length;int listsize;SqList;int Init_Sq(SqList &L)L.elem=(int *)malloc(100*sizeof(int);if(!L.elem)exit(-2);L.length=0;L.listsize=100;return 1;int ListInsert(SqList &L,int i,int e)if(iL.length+1)return 0;if(L.length=L.listsize)int *newbase=(int *)realloc(L.elem,(L.listsize+10)*sizeof(int);if(!newbase)exit(-2);L.elem=newbase;L.listsize+=10;int *q=&(L.elemi-1);int *p=&(L.elemL.length-1);for(p;p=q;-p)*(p+1)=*p;*q=e;+L.length;return 1;int ListDelete(SqList &L,int i,int &e)if(iL.length)return 0;int *p=&(L.elemi-1);e=*p;int *q=L.elem+L.length-1;for(+p;p=q;-p)*(p+1)=*p;*q=3;for(int i=0;i6;i+)coutai ;coutendl;SqList lx;Init_Sq(lx);for(int j=1;j10;j+)ListInsert(lx,j,j);ListInsert(lx,3,55);int e_return;ListDelete(lx,4,e_return);for(int m=0;m10;m+)cout*(lx.elem+m) ;coutendl;coutnext=NULL;return 1;int ListInsert(LinkList &L,int i,int e)LinkList p=L;int j=0;while(p&jnext;+j;if(!p|ji-1)return 0;LinkList s=(LinkList)malloc(sizeof(LNode);s-data=e;s-next=p-next;p-next=s;return 1;int ListDelete(LinkList &L,int i)LinkList p=L;int j=0;while(p-next&jnext;+j;if(!(p-next)|ji-1)return 0;LinkList q=p-next;p-next=q-next;free(q);return 1;int GetElem(LinkList L,int i)LinkList p=L-next;int j=1;while(p&jnext;+j;if(!p|jdata;return e;int main()LinkList lx;InitList(lx);for(int i=1;i6;i+)ListInsert(lx,i,i);ListDelete(lx,2);for(int j=1;j5;j+)coutGetElem(lx,j) ;coutendl;LinkList lx1,lx2;InitList(lx1);InitList(lx2);for(int m=1;m6;m+)ListInsert(lx1,m,m);for(int n=1;n6;n+)ListInsert(lx2,n,2*n);for(int j=1;j6;j+)coutGetElem(lx1,j)next=L;L-prior=L;int ListInsert(DLinkList &L,int i,int e)DLinkList p,s;p=L-next;int j=1;while(p&jnext;+j;if(!p|ji)return 0;s=(DLinkList)malloc(sizeof(DList);s-data=e;s-prior=p-prior;p-prior-next=s;s-next=p;p-prior=s;return 1;int ListDelete(DLinkList &L,int i,int &e)DLinkList p;p=L-next;int j=1;while(p&jnext;+j;if(!p|ji)return 0;e=p-data;p-prior-next=p-next;p-next-prior=p-prior;free(p);return 1;int GetElem(DLinkList &L,int i)DLinkList p,s;p=L-next;int j=1;while(p&jnext;+j;if(!p|ji)return 0;int e=p-data;return e;int main()DLinkList lx;InitList(lx);for(int i=1;i6;i+)ListInsert(lx,i,2*i-1);for(int j=1;j6;j+)coutGetElem(lx,j) ;coutendl;int e;ListDelete(lx,2,e);couteendl;for(int j=1;j5;j+)coutGetElem(lx,j)=S.stacksize)S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int);if(!S.base)exit(-2);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;*S.top+=e;int Pop(Stack &S,int &e)if(S.top=S.base)return 0;e=*-S.top;return 1;int main()Stack lx;InitStack(lx);for(int i=1;i6;i+)Push(lx,i);int e;GetTop(lx,e);couteendl;int e1;Pop(lx,e1);coute1endl;GetTop(lx,e1);coute1next=NULL;return 1;int DestroyQueue(LinkQueue &Q)while(Q.front)Q.rear=Q.front-next;free(Q.front);Q.front=Q.rear;return 1;int Insert(LinkQueue &Q,int e)QueuePtr p=(QueuePtr)malloc(sizeof(QNode);if(!p)exit(-2);p-data=e;p-next=NULL;Q.rear-next=p;Q.rear=p;return 1;int GetFront(LinkQueue &Q,int &e)if(Q.front=Q.rear)return 0;e=Q.front-next-data;return 1;int GetRear(LinkQueue &Q,int &e)if(Q.front=Q.rear)return 0;e=Q.rear-data;return 1;int Delete(LinkQueue &Q,int &e)if(Q.front=Q.rear)return 0;QueuePtr p;p=Q.front-next; e=p-data;Q.front-next=p-next;if(Q.rear=p)Q.rear=Q.front;free(p);return 1;int main()LinkQueue lx;InitQueue(lx);for(int i=1;i6;i+)Insert(lx,i);int front;GetFront(lx,front);coutfrontendl;int rear;GetRear(lx,rear);coutrearendl;int e;Delete(lx,e);couteendl;GetFront(lx,front);coutfrontendl;system(pause);return 0;1512请按任意键继续. . .6 循环队列 #include iostream#include malloc.husing namespace std;#define MAXSIZE 100typedef structint *base;int front;int rear;SqQueue;int Init(SqQueue &Q)Q.base=(int *)malloc(MAXSIZE*sizeof(int);if(!Q.base)exit(-2);Q.front=Q.rear=0;return 1;int QueueLength(SqQueue &Q)return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;int EnQueue(SqQueue &Q,int e)if(Q.rear+1)%MAXSIZE=Q.front)return 0;Q.baseQ.rear=e;Q.rear=(Q.rear+1)%MAXSIZE;return 1;int DeQueue(SqQueue &Q,int &e)if(Q.front=Q.rear)return 0;e=Q.baseQ.front;Q.front=(Q.front+1)%MAXSIZE;return 1;int GetFront(SqQueue &Q)int e=Q.baseQ.front;return e;int Getrear(SqQueue &Q)int e=Q.baseQ.rear-1;return e;int main()SqQueue lx;Init(lx);for(int i=1;i6;i+)EnQueue(lx,i);coutQueueLength(lx)endl;coutGetFront(lx)endl;coutGetrear(lx)endl;int m;DeQueue(lx,m);coutmendl;coutGetFront(lx)endl;system(pause);return 0;51512请按任意键继续. . .7 顺序表字符串#include iostream#include malloc.husing namespace std;#define OK 1#define ERROR 0typedef structchar *ch;int length;HString;int StrAssign(HString &T,char *chars)T.ch=(char *)malloc(sizeof(char);if(T.ch)free(T.ch);/int i=strlen(chars);int i=0;char *c;for(c=chars;*c;+i,+c);/判D断?条?件t为a*c!=0if(!i)T.ch=NULL;T.length=0;T.ch=(char*)malloc(i*sizeof(char);for(int j=0;ji;j+)T.chj=charsj;T.length=i;return OK;0int StrLength(HString &S)return S.length;int Concat(HString &T,HString &S1,HString &S2)T.ch=(char *)malloc(S1.length+S2.length)*sizeof(char);for(int i=0;iS1.length;i+)T.chi=S1.chi;T.length=S1.length+S2.length;for(int j=0;jS2.length;j+)T.chS1.length+j=S2.chj;return OK;int SubString(HString &Sub,HString &S,int pos,int len)if(posS.length|lenS.length-pos+1)return ERROR;Sub.length=len;Sub.ch=(char *)malloc(len*sizeof(char);for(int i=0;ilen;i+)Sub.chi=S.chpos+i;return OK;int Print(HString &T)for(int i=0;iT.length;i+)coutT.chi ;coutendl;return OK;int main()HString lx,hhc;StrAssign(lx,huanhuncao);StrAssign(hhc,lixing);Print(lx);Print(hhc);coutStrLength(lx)endl;coutStrLength(hhc)endl;HString lx1;lx1.ch=(char *)malloc(lx.length+hhc.length)*sizeof(char);Concat(lx1,lx,hhc);Print(lx1);HString lx2;SubString(lx2,lx1,2,3);Print(lx2);system(pause);return 0;h u a n h u n c a ol i x i n g106h u a n h u n c a o l i x i n ga n h请按任意键继续. . .8 链式字符串就是线性表的链式表示一样9 数组的表示 #include iostream#include stdarg.h/提供宏va_start#include malloc.husing namespace std;#define MAX_ARRAY_DIM 8#define OK 1#define ERROR 0typedef structint *base;int dim;int *bounds;int *constants;int elemtotal;Array;int InitArray(Array &A,int dim,.)if(dimMAX_ARRAY_DIM)return ERROR;A.dim=dim;cout数组维数是:A.dimendl;A.bounds=(int *)malloc(dim*sizeof(int);if(!A.bounds)exit(-2);int elemtotal=1;va_list ap;va_start(ap,dim);cout数组每维元素数目分别是: ;for(int i=0;idim;i+)A.boundsi=va_arg(ap,int);coutA.boundsi ;if(A.boundsi0)return -2;elemtotal *=A.boundsi;coutendl;cout数组元素数目是:elemtotal=0;-i)A.constantsi=A.boundsi+1*A.constantsi+1;return OK;int DestroyArray(Array &A)if(!A.base)return ERROR;free(A.base);A.base=NULL;if(!A.bounds)return ERROR;free(A.bounds);A.bounds=NULL;if(!A.constants)return ERROR;A.constants=NULL;return OK;int Locate(Array &A,va_list ap,int &off)off=0;int ind=0;for(int i=0;iA.dim;i+)ind=va_arg(ap,int);if(ind=A.boundsi)return -1;off+=A.constantsi*ind;return OK;int returnLocate(Array &A,int any,.)int off=0;va_list ap;va_start(ap,any);int ind=0;for(int i=0;iA.dim;i+)ind=va_arg(ap,int);if(ind=A.boundsi)return -1;off+=A.constantsi*ind;va_end(ap);return off;int Value(Array &A,int any,.)int e;int off=0;va_list ap;va_start(ap,any);int ind=0;for(int i=0;iA.dim;i+)ind=va_arg(ap,i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年欧美同学会会计准则强化题集
- 2025年人事代理招聘笔试模拟题及答案解析
- 2025年安全员考证模拟试卷及答案详解
- 2025年村级养老站社工笔试冲刺题
- 2025年幼师面试模拟题及答案解析
- 2025年物流无人机面试模拟题与答案解析
- 2025年安全员资格证考试模拟题及答案集
- 2025年红白理事会面试常见问题解析
- 2025年心理健康师中级考试复习
- 机电仪安全知识培训课件
- 广东省佛山市顺德区2023-2024学年七年级(上)期末数学试卷(含答案)
- 变配电运维职业技能(中级)等级培训题库
- 矿山隐蔽致灾普查治理报告
- 实心球课件教学课件
- 玻璃体切割手术治疗2型糖尿病视网膜病变专家共识
- 大型养路机械司机(打磨车)高级工技能鉴定考试题库(含答案)
- 部编版小学语文四年级语文阅读理解练习试题含答案(全册)
- 马凡综合征个案护理
- 2024四年级上册语文开学第一课教学课件
- 慢性肺源性心脏病的护理(内科护理学第七版)
- 铁路120型货车空气控制阀
评论
0/150
提交评论