数据结构-链表习题

摘要:
True或False 1.在单向链接列表中,标头指针存储标头节点的内容。TF2.单向链接列表中的每个节点都需要动态分配内存空间。TF3.嵌套结构通常用于定义单向链接列表节点的数据类型。TF4.当使用链接列表替换数据操作的数组时,查询更方便。

判断题

1.在单向链表中,头指针中存放的是头结点的内容。

     T      F

2.单向链表中的每个结点都需要动态分配内存空间。

     T      F

3.通常使用结构的嵌套来定义单向链表结点的数据类型。

     T      F

4.用链表代替数组进行数据操作时,查询更加方便

     T      F

选择题

1.以下程序的输出结果是( )。

struct HAR
{int x, y; struct  HAR  *p;} h[2];
int main(void)
{ 
 h[0].x=1; h[0].y=2; h[1].x=3; h[1].y=4; h[0].p=h[1].p=h; printf(“%d%d ”,(h[0].p)->x,(h[1].p)->y); return 0;
}
    A.12
    B.23
    C.14
    D.32
//都指向首地址了

2.以下程序的输出结果是( )。

struct NODE{ int num;  struct NODE  *next; };
int main(void)
{ struct NODE *p,*q,*r;
  p=(struct NODE*)malloc(sizeof(struct NODE));
  q=(struct NODE*)malloc(sizeof(struct NODE));
  r=(struct NODE*)malloc(sizeof(struct NODE));
  p->num=10; q->num=20; r->num=30;
  p->next=q;q->next=r;
  printf(“%d
”,p->num+q->next->num);	
  return 0;		}
    A.10
    B.20
    C.30
    D.40

3.设有如下定义的链表,则值为7的表达式是()

struct st{
      int n;
      struct st  *next;
} a[3] = {5, &a[1], 7, &a[2], 9, NULL}, *p = &a;
    A.p->n
    B.(p->n)++
    C.(++p)->n
    D.p->next->n

4.在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行()。

    A.p->next=q->next; q->next=p;
    B.q->next=p->next; p=q;
    C.p->next=q->next; p->next=q;
    D.q->next=p->next; p->next=q;

5.下面程序段输入一行字符,按输入的逆序建立一个链表。

struct node{
  char info;
  struct node *link;
} *top, *p;
char c;
top=NULL;
while((c=getchat())!='
')
{  p=( struct node*)malloc(sizeof(struct node));
   p->info=c;
     (1分)   ;
   top=p;
}
    A.top->link=p
    B.p->link=top
    C.top=p->link
    D.p=top->link
//顺序的话,就是和上面一样的尾插,这个是头插

6.若已建立下面的链表结构,指针p、q分别指向图中所示结点,则不能将q所指结点插入到链表末尾的语句是( )。

1.jpg

    A.q->next=NULL; p=p->next; p->next=q;
    B.p=p->next; q->next=p->next; p->next=q;
    C.p=p->next; q->next=p; p->next=q;
    D.p=(*p).next; (*q).next=(*p).next; (*p).next=q;

填空题

1.下列函数用于将链表中各结点的数据依次输出。

struct student {
    long data;
    struct student *next;
};
void print(struct student *head)
{
    struct student *p ;
    p=head;
    if(head != NULL)
        do {
            printf("%ld ”, p->data);
                    ;
        } while ( );
}

2.已建立学生“英语”课程的成绩链表(成绩存于score域中,学号存于num域中), 下列函数用于输出不及格学生的学号和成绩,及补考学生人数。

void require(struct student *head)
{
    struct student *p;
    long x;
    if( head != NULL) {
        x=0;
                ;
        while(p != NULL) {
            if( ) {
                printf(”%7d %6.1f ”, p->num, p->score);
                x++;
            }
            p = p->next;
        }
        printf(”%ld ”, x);
    }
}

转自 https://www.cnblogs.com/nonlinearthink/p/11039494.html

免责声明:文章转载自《数据结构-链表习题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇chrome浏览器跨域请求cookie丢失问题(一直报验证码错误,因为未携带sessionid)nmap命令详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

golang数据结构之双链表

目录结构:  doubleLink.go package link import ( "fmt" ) //HerosNode 链表节点 type HerosNode struct { ID int Name string pre *HerosNode //指针 next *HerosNode //指针 }...

Golang之常量与基本数据类型

1.1 Go常量 常量代表只读的, 不可修改的值,用 const 关键字定义 常量和变量一样,可以批量声明,或者一组相关的常量。 常量的计算都是在编译期间完成的, 并非运行期间!从而减少运行时的工作。 未使用的常量不会应发编译错误。(这点和变量不一样) package main import ( "fmt" "unsafe" ) // 常量定...

laravel中查询数据结果集变为数组

在laravel中,查询数据库后,返回的对象,可以用下面的办法变为数组 $nodes = Db::table('system_node')->orderBy('sort', 'asc')->orderBy('id' ,'asc')->get()->map(function ($value) { return...

【Oracle】给clob字段插入数据

// 插入 //OracleCommand cmd = "insertInto into GIS_PolygonPoint(PCode,PointColl) values('140134', :var)"; // 修改 //OracleCommand cmd = new OracleCommand("update yd_line set coord=:co...

powerbuilder连接oracle数据库

一、打开已经安装好的pb9.0,主界面菜单栏有个两个圆柱形就行数据库连接,点击database。 二、选择oracle版本,由于数据库版本是9i,可以使用084 oracle8/8i.右键--选择new profile。当然你也可以设置好的profile导入进去。也可以把设置好profile导出来。 三、弹出database profile setup界...

在本地数据库目录或系统数据库目录中已经存在数据库别名""的解决办法

在创建数据库时遇到数据库别名已存在的问题时,可以: 1. 首先用 db2 list database directory 命令看在系统数据库目录(System Database Directory)中有没有该数据库,如果有,应该在确定该数据库是没有用的数据库之后用 db2 drop database 数据库名将其删除。2. 如果没有,再用 db2 lis...