- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精心整理
数据结构作业( C 语言版)习题
1.4 ,试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有
理数的定义(有理数是其分子、分母均为自然数且分母不为零的分
数)。
复数:
ADT Triplet
{
D={r,i|r,i 为实数 }
R={r,i}
InitComplex(C,re,im)
}ADT Complex
有理数:
ADT Triplet
{
D={c1,c2,c3 | c1,c2,c3 ∈Z,c3 ≠0};
R={c1,c2};
C3=c1/c2;
}ADT Triplet
1.9 假设 n 为 2 的乘幂,并且 n >2 ,试求下列算法的时间复杂度及
变量 count 的值(以 n 的函数形式表示)。
int Time (int n){
精心整理
count=0;x=2;
while( x<n/2 ){
x*=2;count++;
}
return(count)
}//Time
解: o(log 2 n)
count= log 2
n
2
1.16 试写一算法,自大至小依次输出顺序读入的三个整数
X ,Y
和
Z 的值。
Void bubble-sort(int a[X,Y,Z],int i){
for (i=n-1,change=TRUE;
i ≥change; --i){
change=FALSE;
for(j=0;ji;++j)
if(a[j]a[j+1]){a[j+1]
←→ a[j]change=TRUE;}
}
}//bubble-sort
解:
int max3(int x,int y,int z)
{
if(xy)
if(xz) return x;
else return z;
else
if(yz) return y;
else return z;
精心整理
}
2.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。
头结点:在单链表的第一个结点之前附设一个结点, 即称之为头结点头指针:链表中第一个结点的存储位置即称之为头指针
首元结点:首元结点是指链表中存储线性表中第一个数据元素 a1 的结点
2.2 填空题
1)在顺序表中插入或删除一个元素, 需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。
2) 顺序表中逻辑上相邻的元素的物理位置必定相邻。 单链表中逻辑上相邻的元素的物理位置不一定相邻。
3) 在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的性指示。
40 在单链表中设置头结点的作用是插入或删除首元素不必进行特殊处理。
2.4 对以下单链表分别执行下列各程序段,并画出结果示意图。
2
1) Q=P-next;
精心整理
2) L=P-next;
3) R-data=P-data;
4) R-data=P-next-data;
5) P-next-next-next-data=P-data;
6) T=P;
While(T!=NULL){T-data=T-data*2;T=t-next;}
(7)T=P
While(T-next!=NULL){T-data=T-data*2;T=T-next;}
2.5 画出执行下列各行语句后各指针及链表的示意图。
L=(LinkList)malloc(sizeof(LNode));P=L
For(i=1;i=4;i++){
p-next=(LinkList)malloc(sizeof(LNode));
P=P-next;p-data=i*2-1;
}
P-next=NULL;
for(i=4;i=1;i--;)Ins-LinkList(L,i+1,i*2);
for(i=1;i=3;i++)Del-LinkList(L,i);
解:
2.6 已知 L 是无表头结点的单链表,且 P 结点既不是首元结点,也不
是尾元结点,试从下列提供的答案中选择合适的语句序列。
A.在 P 结点后 S 结点的语句序列是: (4) (1)
精心整理
B.在 P 结点前 S结点的语句序列是: (7) (11) (8) (4) (1)
C.在表首 S 结点的语句序列是: (5) (12)
D.在表尾 S 结点的语句序列是: (9) (1) (6)
1)P-next=S;
(2)P-next=P-next-next;
(3)P-next=S-next;
(4)S-next=P-next;
(5)S-next==L;
(6)S-next=NULL;
(7)Q=P
(8)while(P-next!=Q)P=P-next;
(9)while(P-next!=NULL)P=P-next;
(10)P=Q
(11)P=L;
(12)L=S;
(13)L=P;
2.7
a.(11)
文档评论(0)