欢迎来到天天文库
浏览记录
ID:15544468
大小:54.50 KB
页数:15页
时间:2018-08-04
《数据结构(耿国华)答案(1—6)(》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第一章 习题答案2、××√3、(1)包含改变量定义的最小范围 (2)数据抽象、信息隐蔽 (3)数据对象、对象间的关系、一组处理数据的操作 (4)指针类型 (5)集合结构、线性结构、树形结构、图状结构 (6)顺序存储、非顺序存储 (7)一对一、一对多、多对多 (8)一系列的操作 (9)有限性、输入、可行性4、(1)A(2)C(3)C5、语句频度为1+(1+2)+(1+2+3)+…+(1+2+3+…+n)第二章 习题答案1、(1)一半,插入、删除的位置 (2)顺序和链式,显示,隐式 (3)一定,不一定 (4)头指针,头结点的指针域
2、,其前驱的指针域2、(1)A(2)A:E、A B:H、L、I、E、A C:F、M D:L、J、A、G或J、A、G (3)D(4)D(5)C(6)A、C3、头指针:指向整个链表首地址的指针,标示着整个单链表的开始。 头结点:为了操作方便,可以在单链表的第一个结点之前附设一个结点,该结点的数据域可以存储一些关于线性表长度的附加信息,也可以什么都不存。 首元素结点:线性表中的第一个结点成为首元素结点。4、算法如下: intLinser(SeqList*L,intX) {inti=0,k;
3、if(L->last>=MAXSIZE-1) {printf(“表已满无法插入”); return(0); } while(i<=L->last&&L->elem[i]last;k>=I;k--) L->elem[k+1]=L->elem[k]; L->elem[i]=X; L->last++; return(1); }5、算法如下:#defineOK1#defineERROR0IntLDel(Seqlist*L,
4、inti,intk){intj; if(i<1
5、
6、(i+k)>(L->last+2)) {printf(“输入的i,k值不合法”); returnERROR; } if((i+k)==(L->last+2)) {L->last=i-2; ruturnOK; }else{for(j=i+k-1;j<=L->last;j++) elem[j-k]=elem[j]; L->last=L->last-k;returnOK;}}6、算法如下:#defineOK1#defineERROR0IntDelet(LInkListL
7、,intmink,intmaxk){Node*p,*q; p=L; while(p->next!=NULL) p=p->next; if(mink8、9、(L->next->data>=mink)10、11、(p->data<=maxk)) {printf(“参数不合法”); returnERROR; } else {p=L; while(p->next-data<=mink) p=p->next; while(q->datanext=q->next; 12、 free(q); q=p->next; } returnOK; }}9、算法如下:intDele(Node*S){Node*p;P=s->next; If(p==s) {printf(“只有一个结点,不删除”); return0; } else{if((p->next==s) {s->next=s;free(p);return1; } Else {while(p->next->next!=s) P=p->next; P->next13、=s; Free(p);return1;} }}第三章习题答案2、(1)3、栈有顺序栈和链栈两种存储结构。 在顺序栈中,栈顶指针top=-1时,栈为空;栈顶指针top=Stacksize-1时,栈为满。 在带头结点链栈中,栈顶指针top-〉next=NULL,则代表栈空;只要系统有可用空间,链栈就不会出现溢出,既没有栈满。5、#include#include"stdio.h"voidmain(){ charch,temp; SeqStacks; InitStack(&s)14、; scanf
8、
9、(L->next->data>=mink)
10、
11、(p->data<=maxk)) {printf(“参数不合法”); returnERROR; } else {p=L; while(p->next-data<=mink) p=p->next; while(q->datanext=q->next;
12、 free(q); q=p->next; } returnOK; }}9、算法如下:intDele(Node*S){Node*p;P=s->next; If(p==s) {printf(“只有一个结点,不删除”); return0; } else{if((p->next==s) {s->next=s;free(p);return1; } Else {while(p->next->next!=s) P=p->next; P->next
13、=s; Free(p);return1;} }}第三章习题答案2、(1)3、栈有顺序栈和链栈两种存储结构。 在顺序栈中,栈顶指针top=-1时,栈为空;栈顶指针top=Stacksize-1时,栈为满。 在带头结点链栈中,栈顶指针top-〉next=NULL,则代表栈空;只要系统有可用空间,链栈就不会出现溢出,既没有栈满。5、#include#include"stdio.h"voidmain(){ charch,temp; SeqStacks; InitStack(&s)
14、; scanf
此文档下载收益归作者所有