求一个程序,要求实现单链表中结点的插入、删除、结点个数的统计。
3、编制一个程序,要求实现单链表中结点的插入、删除、结点个数的统计。
具体要求:
(1)、要求编制系统菜单,菜单中至少包含五大功能项:1、单链表的创建;2、结点的插入;3、结点的删除;4、统计结点个数;5、退出系统。
(2)、单链表要带头结点;
(3)、结点的插入:要求在值为x的结点之前插入值为y的结点,x,y由用户通过键盘输入;
(4)、结点的删除:要求删除值为x的结点,x由用户通过键盘输入;
(5)、结点的统计:不计头结点;
(6)、要求系统界面友好,所有用户输入信息需讨论数据的合法性,输出结果的提示信息描述完备、清晰。
相关提示:
(1)、单链表中结点的存储结构定义:typedef struct node
{ int data;
struct node *next;
}LinkList;
(2)、程序主体结构:
第一块:
#include ……
#define ……
struct node
{ ……
}
相关全局变量的定义 ,等
第二块:相关子函数的定义
void CreatList()
{ ……} /*创建函数的定义*/
void DispList()
{ ……} /*输出函数的定义*/
void InsertList()
{ ……} /*插入函数的定义*/
void DeleteList()
{ ……} /*删除函数的定义*/
void Countnode()
{ ……} /*统计结点个数函数的定义*/
……
第三块:主函数的定义
void main( )
{ ……
do
{ printf(“主菜单\n”); /*菜单的打印*/
printf(“1、创建单链表\n”);
……
printf(“请输入选择(1~5)”);
scanf(“%d”,&cord);
switch(cord)
{ case 1:CreatList();DispList()/*函数调用*/
case 2:……
case 5:……;
……
}
}while(cord<=5);
}