/*4.创建单向链表实验*/ #include<stdio.h> #include<stdlib.h> struct stu_num { int num; struct stu_num*next; }; struct stu_num*creat() { struct stu_num*p,*q,*head; p=head=(struct stu_num*)malloc(sizeof(struct stu_num)); while(scanf("%d",&p->num)){ q=(struct stu_num*)malloc(sizeof(struct stu_num)); q->num=p->num; q->next=NULL; p->next=q; p=q; } return head; } int main(void) { struct stu_num*p,*head; int i=0; p=creat(); while(p->next!=NULL) { printf("\n%d",p->num); p=p->next; i++; } printf("\n%d",i); return 0; } while(scanf("%d",&p->num)){ q=(struct stu_num*)malloc(sizeof(struct stu_num)); q->num=p->num; q->next=NULL; p->next=q; p=q;
时间: 2024-03-07 07:52:17 浏览: 69
这段代码是一个函数 `creat()`,用于创建一个单向链表。函数中使用了一个 `while` 循环,不断读入用户输入的整数,将其存储在当前节点的 `num` 成员中。然后动态分配内存,创建下一个节点 `q`,将当前节点的 `next` 指针指向下一个节点 `q`,并将当前节点指向下一个节点 `q`。最终返回链表的头节点 `head`。
相关问题
/*4.创建单向链表实验*/ #include<stdio.h> #include<stdlib.h> struct stu_num { int num; struct stu_num*next; }; struct stu_num*creat() { struct stu_num*p,*q,*head; p=head=(struct stu_num*)malloc(sizeof(struct stu_num)); while(scanf("%d",&p->num)){ q=(struct stu_num*)malloc(sizeof(struct stu_num)); q->num=p->num; q->next=NULL; p->next=q; p=q; } return head; } int main(void) { struct stu_num*p,*head; int i=0; p=creat(); while(p->next!=NULL) { printf("\n%d",p->num); p=p->next; i++; } }
这段代码实现了创建一个单向链表,其中每个节点包含一个整数num和一个指向下一个节点的指针next。程序首先定义了一个结构体stu_num,包含num和next两个成员。然后定义了一个函数creat(),用于创建链表。在函数中,使用了malloc()动态分配内存来创建新节点,并通过scanf()函数获取用户输入的整数值,将其存储在节点的num成员中。在每次创建新节点时,将当前节点的next指针指向下一个节点,并将指针移动到新节点。最后,返回链表的头指针head。在主函数中,调用creat()函数创建链表,然后通过while循环遍历链表中的每个节点,并输出其中的整数值num。
#include<stdio.h>#include<string.h>#include<stdlib.h>struct+stu+{ char++data[12]; struct+stu++*next;
这段代码定义了一个结构体`stu`,其中包含一个名为`data`的字符数组和一个指向下一个`stu`结构体的指针`next`。这个结构体可以用来创建一个链表,每个节点都是一个`stu`结构体,`data`数组可以存储一些数据,`next`指针指向下一个节点。这个链表可以用来实现一些数据结构,例如队列、栈等。
阅读全文
相关推荐
















