编写程序,将若干整数从键盘输入,以单链表形式存储起来,然后计算单

题目

编写程序,将若干整数从键盘输入,以单链表形式存储起来,然后计算单链表中结点的个数(其中指针P指向该链表的第一个结点)。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

已知f为单链表的表头指针, 链表中存储的都是整型数据,试写出实现下列运算的递归算法: ① 求链表中的最大整数; ② 求链表的结点个数; ③ 求所有整数的平均值。


参考答案:
  [算法描述]
  ①
  int GetMax(LinkList p)
  {
  if(!p->next)
  return p->data;
  else
  {
  int max=GetMax(p->next);
  return p->data>=max ? p->data:max;
  }
  }
  ②
  int GetLength(LinkList p)
  {
  if(!p->next)
  return 1;
  else
  {
  return GetLength(p->next)+1;
  }
  }
  ③
  double GetAverage(LinkList p , int n)
  {
  if(!p->next)
  return p->data;
  else
  {
  double ave=GetAverage(p->next,n-1);
  return (ave*(n-1)+p->data)/n;
  }
  }

第2题:

将长度为m的单链表连接在长度为n的单链表之后,单链表的长度为()。

A、m+n

B、m*n


参考答案:A

第3题:

对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为()。

A.顺序表

B.用头指针表示的循环单链表

C.用尾指针表示的循环单链表

D.单链表


正确答案:C

第4题:

单链表中,增加头结点的目的是为了(46)。

A.运算上的方便

B.标识单链的位置

C.为了使单链表统一长度,便于管理

D.说明单链表是线性表的链式存储实现


正确答案:A
解析:比如:当要删除一个链表的表头元素时,若使用头结点会方便很多,方法和普通元素的删除差不多。

第5题:

线性表用链式结构来实现,可有哪些形式()

A、单链表

B、双链表

C、循环链表

D、双向循环链表


参考答案:ABCD

第6题:

设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求B、C表利用A表的结点)。


参考答案:
  B表的头结点使用原来A表的头结点,为C表新申请一个头结点。从A表的第一个结点开始,依次取其每个结点p,判断结点p的值是否小于0,利用前插法,将小于0的结点插入B表,大于等于0的结点插入C表。
  [算法描述]
  void DisCompose(LinkedList A)
  { B=A;
  B->next= NULL; ∥B表初始化
  C=new LNode;∥为C申请结点空间
  C->next=NULL; ∥C初始化为空表
  p=A->next; ∥p为工作指针
  while(p!= NULL)
  { r=p->next; ∥暂存p的后继
  if(p->data<0)
  {p->next=B->next; B->next=p; }∥将小于0的结点链入B表,前插法
  else {p->next=C->next; C->next=p; }∥将大于等于0的结点链入C表,前插法
  p=r;∥p指向新的待处理结点。
  }
  }

第7题:

完善算法:已知单链表结点类型为:

函数create建立以head为头指针的单链表。


正确答案:

第8题:

在单链表中,增加头结点的目的是 ______。

A.方便运算的实现

B.使单链表至少有—个结点

C.标识表结点中首结点的位置

D.说明单链表是线性表的链式存储实现


正确答案:A
解析:头结点不仅标识了表中首结点的位置,而且根据单链表<包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。

第9题:

设计算法,实现单链表的就地逆置,即利用原表的存储空间将线性表(a1,a2,„,an)逆置为(an,an-1,„,a1)。


参考答案:

第10题:

编写程序,从键盘输入十个数,然后提出其中的最大值和最小值。


正确答案:程序代码如下: CLEAR INPUT“请输入一个数:” TO a STORE a TO mami FOR i=2 TO 10 INPUT“请输入一个数:” TO a IF maa ma=a ENDIF IF mi>a mi=a ENDIF ENDFOR ?“最大值:”ma ?“最小值;”mi RETURN
程序代码如下: CLEAR INPUT“请输入一个数:” TO a STORE a TO ma,mi FOR i=2 TO 10 INPUT“请输入一个数:” TO a IF maa ma=a ENDIF IF mi>a mi=a ENDIF ENDFOR ?“最大值:”,ma ?“最小值;”,mi RETURN