数据结构试题答案版.docx

上传人:b****1 文档编号:1707685 上传时间:2022-10-23 格式:DOCX 页数:5 大小:16.52KB
下载 相关 举报
数据结构试题答案版.docx_第1页
第1页 / 共5页
数据结构试题答案版.docx_第2页
第2页 / 共5页
数据结构试题答案版.docx_第3页
第3页 / 共5页
数据结构试题答案版.docx_第4页
第4页 / 共5页
数据结构试题答案版.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构试题答案版.docx

《数据结构试题答案版.docx》由会员分享,可在线阅读,更多相关《数据结构试题答案版.docx(5页珍藏版)》请在冰豆网上搜索。

数据结构试题答案版.docx

数据结构试题答案版

数据结构试题(答案版)

1.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移       个元素。

       A、n-i      B、n-i+1       C、n-i-1      D、i

   2.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移       个元素。

       A、n-i      B、n-i+1       C、n-i-1      D、i

  3.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行      。

       A、HL=p; p->next=HL; 

       B、p->next=HL; HL=p;

       C、p->next=HL;  p=HL;

       D、p->next=HL->next; HL->next=p;

   4.在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行          。

      A、q->next=p->next; p->next=q;

      B、p->next=q->next; q=p;

      C、q->next=p->next; p->next=q;

      D、p->next=q->next; q->next=p;

   5.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行      。

      A、p=q->next; p->next=q->next;

      B、p=q->next; q->next=p;

      C、p=q->next; q->next=p->next;

      D、q->next=q->next->next; q->next=q;

 

6.栈的插入与删除操作在        进行。

       A、栈顶         B、栈底         C、任意位置     D、指定位置

  7.当利用大小为N的一维数组顺序存储一个栈时,假定用top==N表示栈空,则向这个栈插入一个元素时,首先应执行       语句修改top指针。

      A、top++         B、top--        C、top=0        D、top

   8.若让元素1,2,3依次进栈,则出栈次序不可能出现        种情况。

      A、3,2,1       B、2,1,3      C、3,1,2      D、1,3,2

   9.在一个循环顺序队列中,队首指针指向队首元素的        位置。

      A、前一个        B、后一个       C、当前         D、后面

   10.当利用大小为N的一维数组顺序存储一个循环队列时,该队列的最大长度为    。

      A、N-2           B、N-1          C、N            D、N+1

   11.从一个循环顺序队列删除元素时,首先需要         。

      A、前移一位队首指针                B、后移一位队首指针

      C、取出队首指针所指位置上的元素    D、取出队尾指针所指位置上的元素

12.假定一个循环顺序队列的队首和队尾指针分别为f和r,则判断队空的条件是  。

      A、f+1==r       B、r+1==f        C、f==0       D、f==r

   13.假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件是   。

      A、front==rear  B、front!

=NULL   C、rear!

=NULL   D、front==NULL

14、数据的基本单位是        

A、文件  B、数据元素  C、符号   D、关键字

15.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列        存储方式最节省运算时间。

  A单向链表   B单向循环链表

C双向链表      D双向循环链表

16、队列操作的原则是        。

A先进先出                   B后进先出                

C只能进行插入      D只能进行删除

17、栈和队列的共同特点是        。

B.都是先进后出   

 

18、队列的插入操作是在        进行。

A.队首  B.队尾  C.队前   D.队后

19、判断一个循环队列cq(最多元素为QueueSize)为满队列的条件是        。

B. cq.rear=QueueSize

t

20.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是        。

A head==NULL                          B head->next==NULL

C head->next==head                    D head!

=NULL

21.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为        。

  A front->next=s;front=s; B s->next=rear;rear=s;

  C rear->next=s;rear=s;   D s->next=front;front=s;

22.设有两个串s和t,求t在s中首次出现的位置的运算是()

23.一个n×n的对称矩阵,如果以按行优先或按列优先存储,则其容量为()。

  A.nn                        B.n(n-1)/2     

  C.n(n-1)                    D.n(n+1)/2

24.串长度的定义是()

  A.串中不同字母的个数     B.串中不同字符的个数    

C.串中所含字符的个数,且大于0    D.串中所含字符的个数

25.设有一个二维数组A6×8,每个元素用相邻的6个字节单元存储(即按字节编址),假设第一个元素a00的存储地址为0。

若按行存储,元素a24的第一个字节的地址是()。

  A.120      B.156              C.114              D.72

 

二、对于结点类型为LNode的单链表,编写出下列每个算法。

(1)删除单链表中的第i个结点。

   

(2)在有序单链表中插入一个元素x的结点。

   (3)从单链表中查找出所有元素的最大值,该值由函数返回,若单链表为空,则显示出错信息并停止运行。

(4) 统计出单链表中结点的值等于给定值x的结点数。

 

参考答案

14.B15.D16.A17.A18.B19.C20.A21.C22.B23.D24.D25A

二、voidDelete_LinkList(LinkList&L,inti,ElemType&e)

{

 LinkListp,q;

 intj=0;

 p=L;

 while(p->next&&j

 {

  p=p->next;

  ++j;

 }

 if(!

(p->next)||j>i-1)

 {

  exit(3);

  cout<<"\n删除位置不合理!

\n";

 }

 q=p->next;

 p->next=q->next;

 e=q->data;

 free(q);

}

voidInsert_LinkList_x(LinkList&L,ElemTypex)

{

 LinkListp,q,s;

 s=(LinkList)malloc(sizeof(LNode));

 s->data=x;

 s->next=NULL;

 p=L;

 if(p->next==NULL)

  p->next=s;

 else

 {

  while(p)

  {

   if(p->data<=x)

   {

    q=p;

    p=p->next;

   }

   else

    break;

  }

  s->next=q->next;

  q->next=s; 

 }

}

intFind_Max(LinkListL)

{

 intmax;

 if(L->next==NULL)

 {

  cout<<"ERROR";

  exit(-9);

 }

 max=L->next->data;

 LinkListp=L->next;

 while(p)

 {

  if(p->data>max)

   max=p->data;

  p=p->next;

 }

 returnmax;

}

int Count_LinkList(LinkListL,intx)

{

  intcount=0;

  if(L==NULL) exit(0);

  LinkListp=L->next;

  while(p)

  {

    if(p->data==x)

  count++;

    p=p->next;

  }

  return count;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1