刷题3

数据结构:

1:链表不具有的特点是(A)
A:可随机访问任意元素
B:插入和删除时不需要移动元素
C:不必事先估计存储空间
D:所需空间与线性表的长度成正比
解析:顺序表可以随机访问任意元素,链表只能通过下一个结点访问下一个结点不能随机访问任意元素,在删除和插入只需要开辟存储空间或者释放当前元素空间来插入或删除元素,不需要移动
2:设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列(D)
A:fedcba
B:bcafed
C:dcefba
D:cabdef
解析
A:a入b入c入d入e入f入f出e出d出c出b出a出fedcba
B:a入b入b出c入c出a出d入e入f入f出e出d出bcafed
C:a入b入c入d入d出c出e入e出f入f出b出a出dcefba
D:a入b入c入c出
3:下面函数的功能是(A)
int fun(char *x)
{
char *y=x;
while(*y++);
return(y-x-1);
}
A:求字符串的长度
B:比较两个字符串的大小
C:将字符串x复制到字符串y
D:将字符串x连接到字符串y后面
解析:char *y=x:y指针指向x指针指向的字符串,while循环中y!=0程序执行,当y=0时再执行一次++操作,所以y-x-1为字符串长度
4:采用计算机来完成一个表达式的计算,常常需要判别一个表达式中左右括号是否配对出现,这对实现的算法采用(D)数据结构最佳
A:线性表的顺序存储结构
B:队列
C:线性表的链式存储结构
D:栈
解析:栈检验括号匹配的方法,对给定的字符串依次进行检验,若是左括号则入栈,右括号则出栈一个左括号看是与其匹配,其他字符则不检验,到字符串尾部还需检查栈是否为空,只有栈空,整个字符串才是括号匹配的
5:设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针S指向被插入的结点x的操作序列是哪一项(B)
A:s->next=p->next;p->next=s;
B:q->next=s;s->next=p;
C:p->next=s->next;s->next=p;
D:p->next=s;s->next=q;
解析:前一个节点的next指向插入结点,插入结点的next指向后一个结点
6:从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较(C)个元素结点
A:n/2
B:n
C:(n+1)/2
D:(n-1)/2
解析:查询元素在第一个是为O(1),在尾部时为O(n)所以平均需要(n+1)/2
7:若有以下程序段:
int a[]={4,0,2,3,1},I,j,t;
for(int i=1;i<5;i++)
{
t=a[i];
j=i-1;
while(j>=0&&t>a[j])
{
a[j+1]=a[j];
–j;
}
a[j+1]=t;
}

则该程序段的功能是:(B)
A:对数组a进行插入排序(升序)
B:对数组a进行插入排序(降序)
C:对数组a进行选择排序(升序)
D:对数组a进行选择排序(降序)
解析:i=1时t=a[1]=0;j=0不满足while循环条件
i=2时 t=a[2]=2;j=1;while条件满足a[1]的值赋给a[2],j=0并且a[2]=t=2;
以上步骤通过排除法选择B
8:
(1):静态链表既有顺序存储的优点,又有动态链表存储的优点,所以,它存取表中第i个元素的时间与i无关
(2):静态链表中能容纳的元素个数的最大数在定义时确定,以后不能增加
(3):静态链表与动态链表在元素插入、删除上类似,不需要做元素移动
以上错误的是(B)
A:(1)(2)
B:(1)
C:(1)(2)(3)
D:(2)
解析:存取第i个元素时要遍历到第i-1个结点,因此和i相关B、C正确
9:非空循环单链表head的尾结点(由p所指向)满足(C)
A:p->next == NULL;
B:p == NULL;
C:p->next == head;
D:p==head
解析:非空循环单链表尾部next指向头结点
10:线性表的逻辑顺序与存储顺序是一致的(B)
A:正确
B:错误
解析:链式存储不要求相邻接点在物理地址上相邻,结点的逻辑结构由附加段的指针字段表示,所以逻辑顺序和物理顺序有可能不一致

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值