#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
// 定义链表中的节点
typedef struct LinkedList
{
int member; // 节点中的成员
struct LinkedList* Next; // 指向下一个节点的指针
} LinkListed,*Linked;
// 函数声明
Linked CreateList(int); // 创建链表函数
void print(Linked); // 打印数据
void Insertnum(Linked,int,int); //第一个参数是头节点,第二个表示要插入的位置,第三个表示数据值
void qiancha(Linked,int); //第一个参数是头节点,第二个表示数据值
void houcha(Linked,int); // 第一个参数是头节点,第二个表示数据值
void turn(Linked);
int GetLength(Linked );
void JudgeNULL(Linked Head);
void ClearList(Linked);
void Destory(Linked);
int Delete(Linked,int);
int main()
{
Linked Head = NULL; // 定义初始化头节点,等价于 struct LinkedList *Linked== NULL
int data,choose,num,value,choose1,length,choose2; //data表示要输入的数据值,choose表示用户第一个选择,choose1表示用户第二个选择
//num表示插入位置,value表示创建链表时每个数据成员的值,length表示链表长度
printf("请输入数据个数:");
scanf("%d",&length);
Head=CreateList(length); // 创建一个非循环单链表,并将该链表的头结点的地址付给pHead
printf("你输入的数据是:");
print(Head); // 调用打印函数
while(1)
{
printf("是否还要进行其他操作:\n");
printf("是请输入1,不是输入2\n");
printf("请输入:");
scanf("%d",&choose);
if(choose==1)
{
printf("进行普通插入请输入1\n前插请输入2\n后插请输入3\n倒序链表请按4\n给链表取长请按5\n为链表判空按6\n打印元素按7\n清空链表按8\n退出按9\n");
scanf("%d",&choose1);
switch (choose1)
{
case (1):{
printf("请输入要在第几个节点前插入数据:\n");
scanf("%d",&num);
length=GetLength(Head);
if(num<0||num>length)
{
printf("您输入的位置无效!\n");
}
else
{
printf("请输入要插入的数据:\n");
#include <stdlib.h>
#include <malloc.h>
// 定义链表中的节点
typedef struct LinkedList
{
int member; // 节点中的成员
struct LinkedList* Next; // 指向下一个节点的指针
} LinkListed,*Linked;
// 函数声明
Linked CreateList(int); // 创建链表函数
void print(Linked); // 打印数据
void Insertnum(Linked,int,int); //第一个参数是头节点,第二个表示要插入的位置,第三个表示数据值
void qiancha(Linked,int); //第一个参数是头节点,第二个表示数据值
void houcha(Linked,int); // 第一个参数是头节点,第二个表示数据值
void turn(Linked);
int GetLength(Linked );
void JudgeNULL(Linked Head);
void ClearList(Linked);
void Destory(Linked);
int Delete(Linked,int);
int main()
{
Linked Head = NULL; // 定义初始化头节点,等价于 struct LinkedList *Linked== NULL
int data,choose,num,value,choose1,length,choose2; //data表示要输入的数据值,choose表示用户第一个选择,choose1表示用户第二个选择
//num表示插入位置,value表示创建链表时每个数据成员的值,length表示链表长度
printf("请输入数据个数:");
scanf("%d",&length);
Head=CreateList(length); // 创建一个非循环单链表,并将该链表的头结点的地址付给pHead
printf("你输入的数据是:");
print(Head); // 调用打印函数
while(1)
{
printf("是否还要进行其他操作:\n");
printf("是请输入1,不是输入2\n");
printf("请输入:");
scanf("%d",&choose);
if(choose==1)
{
printf("进行普通插入请输入1\n前插请输入2\n后插请输入3\n倒序链表请按4\n给链表取长请按5\n为链表判空按6\n打印元素按7\n清空链表按8\n退出按9\n");
scanf("%d",&choose1);
switch (choose1)
{
case (1):{
printf("请输入要在第几个节点前插入数据:\n");
scanf("%d",&num);
length=GetLength(Head);
if(num<0||num>length)
{
printf("您输入的位置无效!\n");
}
else
{
printf("请输入要插入的数据:\n");