📄 002.c
字号:
#include "stdio.h"
#include "conio.h"
#define NUM 500
struct nodetype
{int info,next;
};
struct nodetype node[NUM];
int p;
int creatnode() /*生成链表*/
{int i=1;
int b,n;
printf("please input the node,end by 999.\n");
do
{scanf("%d",&node[i].info);
node[i].next=i+1;
i++;
}while(node[i-1].info!=999);
n=i-2;
node[i-2].next=-1;
i=1;
printf("the list is:");
do{printf("%d\t",node[i].info);
i=node[i].next;
}
while(i!=-1);
p=1;
return(n);
}
insert2(int n) /*插入数据*/
{int c,d;
int i;
printf("n=%d\n",n);
printf("input the location and data you want to insert:\n");
do
{printf("\nlocation:");
scanf("%d",&c);
printf("\ndata:");
scanf("%d",&d);
if((c<1)||(c>n+1))
printf("ERROR!input again:\n");
}while((c<1)||(c>n+1));
node[n+1].info=d;
i=p;
if(c==1)
{node[n+1].next=p;
p=n+1;
printf("p=%d",p);
}
else
{do{i=node[i].next;
}
while(i!=c-1);
if(i!=n)
{node[n+1].next=node[i].next;
node[i].next=n+1;
}
else
{node[i].next=n+1;
node[n+1].next=-1;
}
}
i=p;
printf("the list is:");
do{printf("%d\t",node[i].info);
i=node[i].next;
}
while(i!=-1);
n=n+1;
return(n);
}
void travel() /*遍历链表*/
{int i;
i=p;
printf("the list is:");
do{printf("%d\t",node[i].info);
i=node[i].next;
}
while(i!=-1);
}
void delect() /*删除数据*/
{int x,i,q;
int s;
printf("\nwhich data you want to delect:\n");
scanf("%d",&x);
i=p;
while((node[i].info!=x)&&(node[i].next!=-1))
i=node[i].next;
if(node[i].info==x)
{q=1;
while(node[q].next!=i)
q=node[q].next;
if(node[i].next!=-1)
node[q].next=node[i].next;
else
node[q].next=-1;
i=p;
printf("the list is:");
do{printf("%d\t",node[i].info);
i=node[i].next;
}
while(i!=-1);
}
else
printf("there is no this data\n");
return;
}
show1()
{ int a;
printf("\n===============================================================\n");
printf("\t*1 insert an element.\n\t*2 delect an element.\n\t*3 travel the link.\n\t*4 exit.\n");
printf("\n===============================================================\n");
printf("choice is :");
do
{scanf("%d",&a);
if((a<1)||(a>4))
printf("ERROR!please input again:\n");
}while((a<1)||(a>4));
return(a);
}
str()
{int a;
int n;
n=creatnode();
do
{a=show1();
switch(a)
{case 1:{n=insert2(n);
break;
}
case 2:{delect();
break;
}
case 3:{travel();
break;
}
case 4:break;
}
}while(a!=4);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -