c语言 无头单链表,严蔚敏版数据结构建立学生信息无头结点单链表C语言版.docx...

严蔚敏版数据结构建立学生信息无头结点单链表C语言版

#include #include typedef struct Student/*定义学生类 */{int num;char name[20];char sex[2];int age;float grade;}stu;typedef struct LNode{stu data;struct LNode *next;}LNode,* Linklist;Linklist InitList_L(Linklist L)/*构造一个空的单向链表*/ {L=(Linklist)malloc(sizeof(stu));if(!L)printf("ERROR\n"); else{L=NULL;printf("OK\n");return L;}}void DestroyList_L(Linklist L)//销毁单向链表 */{Linklist p;if(!L)printf("ERROR\n"); else{while(L){p=L;L=L->next;free(p); }printf("OK\n");}}void ClearList_L(Linklist L)/*将L重置为空表*/{Linklist p;if(!L)printf("ERROR\n");else{while(L->next){p=L->next;L->next=p->next;free(p);}printf("OK\n"); } }void ListEmpty_L(Linklist L)/*L为空表返回TRUE,否则返回FALSE*/{if(!L)printf("ERROR\n");else{if(!L->next)printf("TRUE\n");elseprintf("FLASE\n");} }int ListLength_L(Linklist L)/*返回L中数据元素个数*/{int i=0;Linklist p=L;if(!L)return 0;else{while(p){i++;p=p->next;}return i;} }void GetElem_L(Linklist L,int i)//返回第i个元素的值 */{stu e;Linklist p=L;int j=1;while(p!=NULL&&jnext;++j;}if(!p||j>i)printf("ERROR\n");else{printf("学生%d的数据为 :\n",i);printf("学号:%d\n姓名:%s\n性别:%s\n年龄:%d\n成绩:%f\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.grade);printf("OK\n");}}void PriorElem_L(Linklist L,stu cur_e)/*用pre_e返回cur_e的前驱 */{Linklist p=L;while(p->next&&(p->next->data).num!=cur_e.num)p=p->next;if(!p->next)printf("ERROR\n");else{printf("cur_e的前驱为:\n"); printf("num:%d\nname:%s\nsex:%s\nage:%d\ngrade:%f\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.grade); printf("OK\n"); }}void NextElem_L(Linklist L,stu cur_e)/*用next_e返回cur_e的后驱*/{Linklist p=L;while(p&&(p->data).num!=cur_e.num) p=p->next;if(!p||!p->next)printf("ERROR\n");else{printf("cur_e的后驱为:\n"); printf("num:%d\nname:%s\nsex:%s\nage:%d\ng

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值