以下程序的功能是建立—个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。include<stdio.h>struct list { int data;struct list *next;};struct list * creatlist(){ struct list *p,*q,*ph;int a;ph=(struct list *)malloc(sizeof(struct

题目

以下程序的功能是建立—个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。

include<stdio.h>

struct list { int data;struct list *next;};

struct list * creatlist()

{ struct list *p,*q,*ph;int a;ph=(struct list *)malloc(sizeof(struct


相似考题
参考答案和解析
正确答案:
解析: 本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。
更多“以下程序的功能是建立—个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时, ”相关问题
  • 第1题:

    单向链表中往往含有一个头结点,该结点不存储数据元素,一般令链表的头指针指向该结点,而该结点指针域的值为第一个元素结点的指针。以下关于单链表头结点的叙述中,错误的是()。

    A.若在头结点中存入链表长度值,则求链表长度运算的时间复杂度为O(1)
    B.在链表的任何一个元素前后进行插入和删除操作可用一致的方式进行处理
    C.加入头结点后,在链表中进行查找运算的时间复杂度为O(1)
    D.加入头结点后,代表链表的头指针不因为链表为空而改变

    答案:C
    解析:
    在链表中加入头结点后,查找表中某一元素仍然要从头指针出发,顺序找到目标元素或失败时找到表尾为止,时间复杂度与表长成正比。故D项错误。

  • 第2题:

    以下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,……,n,完成程序中空格部分。
    (1)p
    (2)q=p
    (3)(NODE*)malloc(sizeof(NODE)) 
    (4)p
    (5)q=p

  • 第3题:

    3、编写程序建立一个单向链表。链表结点中的数据为从键盘输入的一个字符串,但要求将该串字符按由小到大的顺序组织在链表中。


    #include<stdio.h> #include<stdlib.h> #defineLEN sizeof(struct Student) structStudent {long num; floatscore; structStudent *next; }; intn; structStudent *creat(void) {struct Student *head,*p1,*p2; n=0; p1=p2=( struct Student*) malloc(LEN); scanf(“%ld,%f”,&p1->num,&p1->score); head=NULL; while(p1->num!=0) {n=n+1; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(struct Student*)malloc(LEN); scanf(“%ld,%f”,&p1->num,&p1->score); } p2->next=NULL; return(head); } intmain() {struct Student *pt; pt=creat(); printf(“\nnum:%ld\nscore:%5.1f\n”,pt->num,pt->score); return 0; }

  • 第4题:

    设线性表为(6,10,16,4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据。

  • 第5题:

    以下是用头插法建立带头结点且有n个结点的单向链表的程序,要求结点中的数据域从前向后依次为n,n-1,……,1,完成程序中空格部分。
    (1)p
    (2)q=p
    (3)(NODE*)malloc(sizeof(NODE))
    (4)q->next
    (5)p