欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

C语言——实现用链表存储学生信息,当输入0退出输入,并查找学号为3的学生是否存在

发布时间:2025/10/17 编程问答 12 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C语言——实现用链表存储学生信息,当输入0退出输入,并查找学号为3的学生是否存在 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

功能实现:

1、往链表内录入学生的学号信息;

2、当输入的学号为0时候,退出录入;

3、查找链表内是否有学号为3的学生。

编译执行结果:

代码实现:

#include <stdlib.h> #include <stdio.h>#define LEN sizeof(struct student)struct student {int num; //学号struct student *next;//指向下一个节点的指针 }; int n ; //节点的总数 /*功能:创建链表* 返回:指向链表表头的指针*/ struct student *Create() {struct student *head; //头节点struct student *p1 = NULL; //p1保存创建的新节点的地址struct student *p2 = NULL; //P2保存原链表最后一个节点的地址n = 0; //创建前链表的节点总数为0,空链表p1 = (struct student *)malloc(LEN); //开辟一个新节点p2 = p1; //如果节点开辟成功,则将p2先把它的指针保存下来以备后用if(p1 == NULL) {printf("Cann`t create it, try it again in a moment\n");return NULL;}else{head = NULL; //开始head指向nullprintf("Please input %d node -- num:",n+1);scanf("%d",&(p1->num)); //录入数据}while(p1->num != 0) //只要学号不为0 就继续录入下一个{n += 1;if(n == 1)//如果节点总数是1, 则head指向刚创建的节点p1{head = p1;p2->next = NULL; //此时的p2就是p1,也就是p1->next指向NULL。}else{p2->next = p1; //指向上次下面刚开辟的新节点}p2 = p1; //把p1的地址给p2保留,然后p1产生新的节点p1 = (struct student *)malloc(LEN);printf("Please input %d node -- num:",n+1);scanf("%d",&(p1->num)); //录入数据}p2->next = NULL; //此句就是根据单向链表的最后一个节点要指向nullfree(p1); //p1->num为0的时候跳出了while循环,并释放p1p1 = NULL; //释放的变量 清空为nullreturn head; //返回创建链表的头指针 }/* 功能:输出节点* 返回:void* */ void Print(struct student *head) {struct student *p;printf("Now,These %d records are:\n",n);p = head; if(head != NULL) //只要不是空链表,就输出链表中所有节点{printf("head is %o\n",head); //输出头指针指向的地址}do{printf("%o %d %o\n",p, p->num, p->next);p = p->next;}while(p != NULL); }int find(struct student *head, int i) {struct student *p;p = head->next;while(p){if(p->num == i)return 1;p = p->next;}return 0; }int main() {struct student *head;struct student *stu;int thenumber; head = Create();Print(head);if(find(head, 3) == 1)printf("have\n");elseprintf("no have\n");return 0; }

 

总结

以上是生活随笔为你收集整理的C语言——实现用链表存储学生信息,当输入0退出输入,并查找学号为3的学生是否存在的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。