数据结构错题总结(1)

ps:加粗的是答案。
对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( a )
A.headNULL **B.head→nextNULL** C.head→next==head D.head!=NULL
总:这里要分清带头结点和不点头结点,A就属于不带头结点,因为不带头结点,该结点就要储存数据元素。

完成在双循环链表结点p之后插入s的操作是( c )
A. p->next=s ; s->prior=p; p->next->prior:=s ; s->next=p->next;
B. p->next->prior=s; p->next=s; s->prior=p; s->next:=p->next;
C.s->prior=p; s->next:=p->next; p->next=s; p->next->prior=s ;
D.s->prior=p; s->next:=p->next; p->next->prior=s ; p->next=s;
总:这里要分清指针指向一个新的结点后,指针的方向会发生变化。这里的c和d很容易弄混淆。

以下关于线性表的说法不正确的是____d__。
A.线性表中的数据元素可以是数字、字符、记录等不同类型。
B.线性表中包含的数据元素个数是任意的。
C.线性表中的每个结点都有且只有一个直接前趋和直接后继。(双向循环链表
D.存在这样的线性表:表中各结点都没有直接前趋和直接后继。(空表)

从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较___a_____个元素结点。
A.n/2 B.n C.(n+1)/2 D.(n-1)/2
总:(1+2+…+n)/n=(n+1)/2

算法分析的目的是分析算法的效率以求改进

数据结构按逻辑结构可分为两大类,分别是线性结构非线性结构
总:数据结构可以按照逻辑和物理层次分类:
1.逻辑上处理以上分类外还可以分为集合,线性结构,树形结构和图形结构;
2.物理上可分为顺序储存和非顺序储存。

下面程序段的时间复杂度是__O(log3n)________________。
i=1;
while(i<=n)
i=i*3;
总:一般看到有乘以几的就可以令i=3^x=n==>解出x

设n为正整数。下列程序段中前置以记号@的语句的频度为__n______。
i=0;k=0;
while(i<2n){
@ k+=5
i;
i=i+2; }
总:频度的计算和复杂度类似,但是表达上没有“O”。

简述以下算法的功能。
Status A(LinkList L) { //L是无表头结点的单链表
if(L&&L->next){
Q=L; L=L->next; P=L;//把头结点的值赋给新的结点或者新的内存
while(P->next) P=P->next;//若p->next不为空就向后移
P->next=Q; Q->next=NULL;//把头结点赋给Q点再赋值给链表的尾端,注意:这里的Q==P
}
return OK;
}
功能是把链表的第一个结点移到链表的末尾

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南宫若月︎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值