- 11
- 0
- 约2.17千字
- 约 3页
- 2017-08-09 发布于重庆
- 举报
结构体(带头结点的单链表).doc
//带头结点的单链表.cpp
#define NULL 0
struct student
{char sno[6]; //学号域5个字符
char name[9]; //姓名域4个汉字
struct student *next; //指针域
};
typedef struct student st;
#include stdlib.h
#include stdio.h
#include string.h
st *createlink()
{//尾插法建立带头结点的动态单链表,返回头指针。
st *head,*p,*r;
r=head=(st *)malloc(sizeof(st)); //生成头结点
p=(st *)malloc(sizeof(st)); //分配新结点
printf(学号:); gets(p-sno);
printf(姓名:); gets(p-name);
while (strcmp(p-sno,#)!=0)//当学号为字符串#时结束循环
{r-next=p; //新结点链入表尾
r=p; //表尾指针后移
p=(st *)malloc(sizeof(st)); //分配新结点
printf(学号:); gets(p-sno);
printf(姓名:); gets(p-name);
}
r-next=NULL; //最后结点指针域为空
free(p); //释放最后输入学号为#的结点
return head;
}
void outlink(st *head)
{//输出以head为头指针的单链表
st *p;
if (!head-next) {printf(Empty LinkList.\n); exit(0);}
p=head-next;
while (p!=NULL)
{printf(%s %s\n,p-sno,p-name);
p=p-next;
}
}
void insertNode(st *head, st *s)
{//在以head为头指针且按学号升序排列的单链表中插入指针s所指向的结点仍按升序排列
//返回插入结点后新链表头指针
st *p1,*p2;
p1=head-next; p2=head;
while (p1!=NULLstrcmp(p1-sno,s-sno)0)
{p2=p1; p1=p1-next;} //寻找插入位置
p2-next=s; s-next=p1;
return;
}
void deleteNode(st *head,char *s)
{//在以head为头指针的单链表中删除给定学号s所在的结点
st *p1,*p2;
if (!head-next) {printf(Empty LinkList.\n); exit(0);}
p1=head-next; p2=head;
while (p1!=NULLstrcmp(p1-sno,s)!=0)
{p2=p1; p1=p1-next;} //p1指向要删除的结点,p2指向要删结点的前一结点
if (p1==NULL) printf(链表中无所删结点!\n);
else {p2-next=p1-next; free(p1); } //删除p1所指结点
}
void main()
{st *head,*s; char no[6]; char c;
while (1)
{printf(1.建立链表\n);
printf(2.显示链表\n);
printf(3.插入结点\n);
printf(4.删除结点\n);
printf(0.结 束\n);
printf(请输入0--4:); c=getchar(); getchar();
switch (c)
{case 0: return;
case 1: head=createlink(); break;
case 2: outlink(head); break;
case 3: s=(st *)malloc(sizeof(st));
printf(输入要插入的节点:\n);
printf(学号:); gets(s-sno);
printf(姓名:); gets(s-name);
insertNode(head,s);
break;
case 4: printf(输入要删除的学号:\n);
printf(学号:);
您可能关注的文档
- 等效平衡规律.doc
- 等效平衡课件用.ppt
- 等效电场(教师打印).doc
- 等效结点载荷.ppt
- 等效转动惯量.doc
- 等效重力势能.doc
- 等效重力场.ppt
- 等效重力法.doc
- 等积变形(附答案).doc
- 等精度频计.doc
- 03-2 2025年度民主生活会征求意见座谈会主持词.docx
- 03-1 2025年度民主生活会主持讲话提纲.docx
- 02-1 会前学习-《县以上党和国家机关党员领导干部民主生活会若干规定》相关要求.docx
- 在2025年度民主生活会上的总结讲话三篇.docx
- 在2025年度民主生活会上的总结讲话三篇 (3).docx
- 市委宣传部2025年度民主生活会查摆问题整改方案两篇.docx
- 在市行政审批和政务信息管理局机关2026年全体干部政绩观教育大会上的党课讲稿.docx
- X市应急管理局2026年度安全生产监督检查计划.docx
- 2025年度民主生活会领导班子对照检查材料(五个带头)三篇.docx
- 2025年度民主生活会“五个带头”个人对照检查材料三篇.docx
最近下载
- 腰椎间盘突出症运动康复专家共识(2025)解读PPT课件.pptx VIP
- 中药鉴定学习题及答案(13).docx VIP
- 银行2025年度民主生活会个人对照检查发言材料(五个带头).docx VIP
- 《公司薪酬管理现存问题探析与对策研究_毕业论文》.doc VIP
- XXX污水厂工程施工组织设计.doc VIP
- 圈层营销培训课件.ppt VIP
- 博汇 E100变频器说明书.pdf VIP
- 2022年公司年终工作总结1500字模板4篇.docx VIP
- 护理学专业大学生创业思维的培育-护理学专业创新创业与就业指导PPT课件.pptx
- 2025年房地产经纪人商品房项目工程建设与竣工验收标准专题试卷及解析.pdf VIP
原创力文档

文档评论(0)