C语言_动态链表的简单建立与节点删除
来源:互联网 发布:php手册 编辑:程序博客网 时间:2024/04/30 19:52
程序详解:
1、输入学生的姓名和年龄,进行顺序排列。
2、删除其中某位学生的数据
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define TITLE 45
typedef struct{
int age;
char name[TITLE];
struct student *next;
}stu;
void del(char *d_name);
stu *head=NULL,*p1,*p2;
main()
{
int i=0;
char c_name[TITLE],cc_name[TITLE];
printf("请输入第一位学生的姓名(按回车键结束输出):\n");
while(gets(c_name)!=NULL&&c_name[0]!='\0')
{
p1=(stu *)malloc(sizeof(stu));
if(head==NULL)
head=p1;
else
p2->next=p1;
p1->next=NULL;
strcpy(p1->name,c_name);
printf("请输入该学生的年龄:\n");
scanf("%d",&p1->age);
while(getchar()!='\n')
continue;
p2=p1;
printf("请输入下一位学生的姓名(按回车键结束输出):\n");
}
p1=head;
while(p1!=NULL)
{
printf("第%d位学生的姓名是%s,年龄是%d\n",++i,p1->name,p1->age);
p1=p1->next;
}
del(cc_name);
}
void del(char *d_name)
{ int i=0;
p1=head;
printf("输入要删除的学生的姓名;\n");
scanf("%s",d_name);
if(strcmp(d_name,head->name))
{
while(strcmp(d_name,p1->name))
{
p2=p1;
p1=p1->next;
}
p2->next=p1->next;
}
else
head=p1->next;
p1=head;
while(p1!=NULL)
{
printf("第%d位学生的姓名是%s,年龄是%d\n",++i,p1->name,p1->age);
p1=p1->next;
}
p1=head;
while(p1!=NULL)
{
free(p1);
p1=p1->next;
}
printf("完毕!\n");
}
- C语言_动态链表的简单建立与节点删除
- C语言:动态链表的建立,查找,删除,插入功能的实现
- C语言——链表部分(包括节点的建立、总长度、显示链表、插入节点以及删除节点)
- 【C语言】 链表 单链的建立,节点增加 删除 顺序插入
- 数据结构 C语言实现 双向链表的增加与删除节点
- C 动态链表的建立,输出,删除,插入
- C语言实现链表节点的插入和删除
- C语言实现链表节点的插入和删除
- C语言入门:删除链表节点
- C语言链表的插入和删除、建立
- C语言链表的建立、插入和删除
- C语言:建立动态链表
- C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。
- 【C语言代码】链表的简单建立
- C语音动态链表的建立与输出
- 链表的建立、删除节点、侧长和打印;
- 双向链表的建立、删除/插入节点
- C语言 链表的创建,以及节点的增加和删除
- 安装python及yum
- .htaccess rewrite 规则详细说明
- poj 3122 Pie(二分法)
- 360浏览器不兼容JSON.stringify
- C++连续输入带空格的字符串
- C语言_动态链表的简单建立与节点删除
- HDU 5137 How Many Maos Does the Guanxi Worth (Floyd 最短路)
- kuangbin——线段树专题 B - I Hate It
- 短信读写
- Python简介
- 九度oj--1047素数判定
- type=image 来提交表单
- JSswitch
- iOS设计模式--总结