数据结构作业(C语言版)习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构作业(C语言版)习题
,试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。
复数:
ADT Triplet
{
D={r,i|r,i为实数}
R={
InitComplex(&C,re,im)
}ADT Complex
有理数:
ADT Triplet
{
D={c1,c2,c3 | c1,c2,c3∈Z,c3≠0};
R={
C3=c1/c2;
}ADT Triplet
假设n为2的乘幂,并且n>2,试求下列算法的时间复杂度及变量count的值(以n的函数形式表示)。
int Time (int n){
count=0;x=2;
while(x<n/2){
x*=2;count++;
}
return(count)
})(log 2n o 2
log 2 n 2 5 7 3 8
6 4
11)(3)(14)
b.(10)(12)(8)(11)(3)(14)
c.(10)(12)(7)(3)(14)
d.(12)(11)(3)(14)
e(9)(11)(3)(14)
a.(7)(12)(6)(3)
b.(8)(13)(5)(4)
c.(15)(1)(11)(18)
d.(16)(2)(10)(18)
e.(9)(14)(17)
Status DeleteK(SqList &a,int i,int k)
{
int j;
if(i<0||i>||k<0||k> return INFEASIBLE;
for(j=0;j<=k;j++)
[j+i]=[j+i+k];
=;
return OK;
}
.解:
int LocateElem_L(LinkList &L,ElemType x) {
int i=0;
LinkList p=L;
while(p&&p->data!=x)
{
p=p->next;
i++;
}
if(!p) return 0;
else return i;
}
.解:
int ListLength_L(LinkList &L)
{
int i=0;
LinkList p=L;
if(p) p=p-next;
while(p){
p=p->next;
i++;
}
return i;
}
.解:(1)123 231 321 213 132
(2) 可以得到135426的出站序列,但不能得到435612的出站序列。因为4356出站说明12已经在栈中,1不可能先于2出栈。
.解:stack
.解:(1) 栈中的数据元素逆置
(2) 如果栈中存在元素e,将其从栈中清除
3. 12.解:char
3. 13解:队列逆置