【精品数据结构】数据结构.doc

【精品数据结构】数据结构.doc

ID:19289538

大小:269.50 KB

页数:29页

时间:2018-09-21

【精品数据结构】数据结构.doc_第1页
【精品数据结构】数据结构.doc_第2页
【精品数据结构】数据结构.doc_第3页
【精品数据结构】数据结构.doc_第4页
【精品数据结构】数据结构.doc_第5页
资源描述:

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

1、第一章绪论例:计算f=1!+2!+3!+…+n!,用C语言描述。voidfactorsum(n)intn;{inti,j;intf,w;f=0;for(i=1;i〈=n;i++){w=1;for(j=1;j〈=i;j++)w=w*j;f=f+w;}return;}第二章线性表P16【算法2.1顺序表的插入】intInsert(ElemtypeList[],int*num,inti,Elemtypex){/*在顺序表List[]中,*num为表尾元素下标位置,在第i个元素前插入数据元素x,若成功,返回TRUE,否则返回FALSE。*/intj;if(i<0

2、

3、i>*num+1){print

4、f(“Error!”);/*插入位置出错*/returnFALSE;}if(*num>=MAXNUM-1){printf(“overflow!”);returnFALSE;}/*表已满*/for(j=*num;j>=i;j--)List[j+1]=List[j];/*数据元素后移*/List[i]=x;/*插入x*/(*num)++;/*长度加1*/returnTRUE;}P18【算法2.2顺序表的删除】intDelete(ElemtypeList[],int*num,inti){/*在线性表List[]中,*num为表尾元素下标位置,删除第i个长度,线性表的长度减1,若成功,则返回TR

5、UE;否则返回FALSE。*/intj;if(i<0

6、

7、i>*num){printf(“Error!”);returnFALSE;}/*删除位置出错!*/for(j=i+1;j<=*num;j++)List[j-1]=List[j];/*数据元素前移*/(*num)--;/*长度减1*/returnTRUE;}P19例:将有序线性表La={2,4,6,7,9},Lb={1,5,7,8},合并为Lc={1,2,4,5,6,7,7,8,9}。voidmerge(ElemtypeLa[],ElemtypeLb[],Elemtype**Lc){inti,j,k;intLa_length,Lb_l

8、ength;i=j=0;k=0;La_length=Length(La);Lb_length=Length(Lb);/*取表La,Lb的长度*/Initiate(Lc);/*初始化表Lc*/While(i<=La_length&&j<=Lb_length){a=get(La,i);b=get(Lb,j);if(a

9、h){b=get(La,j);insert(Lc,++k,b);}}P21例如:下面定义的结点类型中,数据域包含三个数据项:学号、姓名、成绩。Structstudent{charnum[8];/*数据域*/harname[8];/*数据域*/intscore;/*数据域*/structstudent*next;/*指针域*/}P21单链表结点结构定义为:Typedefstructslnode{Elemtypedata;structslnode*next;}slnodetype;slnodetype*p,*q,*s;P21【算法2.3单链表的初始化】intInitiate(slnodety

10、pe**h){if((*h=(slnodetype*)malloc(sizeof(slnodetype)))==NULL)returnFALSE;(*h)->next=NULL;returnTRUE;}P22【算法2.4单链表的后插入】{s=(slnodetype*)malloc(sizeof(slnodetype));s->data=x;s->next=p->next;p->next=s;}P22【算法2.5单链表的结点插入】{q=head;while(q->next!=p)q=q->next;s=(slnodetype*)malloc(sizeof(slnodetype));s->d

11、ata=x;s->next=p;q->next=s;}P23【算法2.6单链表的前插入】intinsert(slnodetype*h,inti,Elemtypex){/*在链表h中,在第i个数据元素前插入一个数据元素x*/slnodetype*p,*q,*s;intj=0;p=h;while(p!=NULL&&jnext;j++;/*寻找第i-1个结点*/}if(j!=i-1){printf(“Error!”)

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

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

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