数据结构上机.pdf

数据结构上机.pdf

ID:32610675

大小:395.50 KB

页数:20页

时间:2019-02-13

数据结构上机.pdf_第1页
数据结构上机.pdf_第2页
数据结构上机.pdf_第3页
数据结构上机.pdf_第4页
数据结构上机.pdf_第5页
资源描述:

《数据结构上机.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、顺序表的建立StatusInitList(SqList&L){//构造一个空的顺序表L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;returnOK;}顺序表按照值查找位置intLocateElem(SqListL,ElemTypee){//根据数据元素的值,返回它在线性表L中的位置inti=0;while((i<=

2、L.length)&&(*(L.elem+i-1)!=e))i++;if(i<=L.length)returni;elsereturn(-1);}顺序表按照序号查找元素的值StatusGetElem(SqListL,inti,ElemType&e){//根据数据元素在线性表L中的位置,返回它的值if(i<1

3、

4、i>L.length)exit(ERROR);e=L.elem[i-1];returnOK;}顺序表数据元素的插入StatusListInsert(SqList&L,inti,ElemTypee){/

5、/在L中第i个位置之前插入新的数据元素e,L的长度加1int*q,*p;q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L.length;if(L.length>=L.listsize)++L.listsize;returnOK;}顺序表数据元素的删除StatusListDelete(SqList&L,inti,ElemType&e){//删除L的第i个数据元素,并用e返回其值,L的长度减1int*q,*p;if(

6、(i<1)

7、

8、(i>L.length))returnERROR;p=&(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;++p)*(p-1)=*p;--L.length;returnOK;}顺序表数据元素输出单链表的操作Statusvisit(SqListL){//按序输出顺序表的各个元素值inti;for(i=1;i<=L.length;i++)printf("%2d",*(L.elem+i-1));cout<

9、%uL.length=%dL.listsize=%d",L.elem,L.length,L.listsize);returnOK;}单链表的建立StatusInitList(LinkList&L){//构造一个空的单链表LL=(LinkList)malloc(sizeof(LNode));if(!L)exit(OVERFLOW);L->next=NULL;returnOK;}单链表的建立voidCreateList2(LinkList&L,intn){//正位序输入n个元素的值,建立带表头结构的单链线性

10、表inti;LinkListp,q;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=L;printf("正位序,请输入%d个数据:",n);for(i=1;i<=n;i++){p=(LinkList)malloc(sizeof(LNode));scanf("%d",&p->data);q->next=p;q=q->next;}p->next=NULL;}单链表的输出Statusvisit(LinkListL){//按序输出单链表的各个元素值LinkListp

11、=L->next;while(p){printf("%2d",p->data);p=p->next;}printf("");returnOK;}单链表结点的插入StatusListInsert(LinkListL,inti,ElemTypee){intj=0;LinkListp=L,s;while(p&&jnext;j++;}if(!p

12、

13、j>i-1)returnERROR;s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p-

14、>next;p->next=s;returnOK;}单链表结点的删除StatusListDelete(LinkListL,inti,ElemType&e){intj=0;LinkListp=L,q;while(p->next&&jnext;++j;}if(!(p->next)

15、

16、j>i-1)return0;q=p->next;p->next=q->next;e=q->data;free(q)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。