运行不了
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node* next;
}NODE;
typedef NODE*LinkList;
void Option()
{
printf("1.链表的创建\n");
printf("2.链表的插入\n");
printf("3.链表的删除\n");
printf("4.链表的查找\n");
printf("0.退出\n");
}
void Print(LinkList Head)
{
while(Head->next!=NULL)
{
Head=Head->next;
printf("%d",Head->data);
}
printf("\n");
}
void CreateLinkList(LinkList *head)
{
system("cls");
if(head->next!=NULL)
{
printf("请勿重复创建链表!\n");
return;
}
else
printf("请输入5个数:\n");
LinkList end;
head=end=(LinkList)malloc(sizeof(NODE));
NODE *NewNode;
for(int i=1;i<=5;i++)
{
NewNode=(LinkList)malloc(sizeof(NODE));
scanf("%d",NewNode->data);
end->next=NewNode;
end=end->next;
}
end->next=NULL;
}
void InsertLinkList(LinkList *head)
{
system("cls");
if(head->next==NULL)
{
printf("请先创建链表!\n");
return;
}
Print(head);
int pos,num;
LinkList Link=head;
printf("请输入要插入的位置和数值:\n");
scanf("%d%d",&pos,&num);
while(Link->next!=NULL&&--pos)
Link=Link->next;
if(!pos)
{
NODE *NewNode;
NewNode=(LinkList)malloc(sizeof(NODE));
NewNode->data=num;
NewNode->next=Link->next;
Print(head);
}
else
printf("要插入的位置不存在!\n");
printf("\n");
}
void DeleteLinkList(LinkList &head)
{
system("cls");
if(head->next==NULL) //判断链表是否存在
{
printf("请先创建链表!\n");
return;
}
Print(head); //输出先前链表
int pos;
printf("请输入要删除的位置:\n");
LinkList Link=head;
scanf("%d",&pos);
whlie(Link->next!=NULL&&-- pos) //找到删除的位置
Link=Link->next;
if(!pos)
{
Link->next=Link->next->next;
Print(head);
}
else
printf("要插入的位置不存在!\n");
printf("\n");
}
void SearchLinkList(LinkList &head)
{
system("cls");
if(head->next==NULL) //判断链表是否存在
{
printf("请先创建链表!\n");
return;
}
Print(head);
int pos;
printf("请输入要查找数的位置:\n");
scanf("%d",&pos);
LinkList Link=head;
while(Link->next!=NULL&&-- pos) //找到查找的位置
Link=Link->next;
if(!pos)
printf("该位置上的数为%d",Link->next->data);
else
printf("要查找的数不存在!\n");
printf("\n");
}
int Choose() //选择函数
{
int k;
printf("请选择要进行的操作:\n");
scanf("%d",&k);
return k;
}
int main(int argc, char *argv[])
{
LinkList head;
head=(LinkList)malloc(sizeof(NODE)); //创建链表并分配地址
head->data=NULL;
head->next=NULL;
while(1)
{
Option();
switch(Choose())
{
case 1:CreateLinkList(head);
break;
case 2:InsertLinkList(head);
break;
case 3:DeleteLinkList(head);
break;
case 4: SearchLinkList(head);
break;
default :printf("输入错误!\n");
break;
case 0:return 0;
}
}
}