📄 link.txt
字号:
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
Status ListInsert_L(LinkList L,int i,ElemType e)
{
LinkList p,s;
int j;
p=L;j=0;
while(p&&j<i-1)
{
p=p->next;++j;
}
if(!p||j>i-1)return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->data=e;s->next=p->next;
p->next=s;
++L->data;
return OK;
}
Status ListDelete_L(LinkList L,int i,ElemType *e)
{
LinkList p,q;
int j;
p=L;j=0;
while(p->next&&j<i-1)
{
p=p->next;++j;
}
if(!(p->next)||j>i-1)return ERROR;
q=p->next;p->next=q->next;
*e=q->data;free(q);
--L->data;
return OK;
}
void dsply(Status p)
{
switch(p)
{
case -2:printf("OVERFLOW");break;
case 0:printf("ERROR");break;
case 1:printf("OK");
}
}
void main()
{
char c=0;
ElemType p,v,j;
LinkList k;
LNode Lst;Lst.data=0;Lst.next=0;
for(;c!=3;)
{
printf("1--ListInsert.\n2--ListDelete.\n3--Exit.\nPlease select your choice:");
scanf("%d",&c);
if(c==1)
{
printf("Please input the position and the value:");
scanf("%d%d",&p,&v);
dsply(ListInsert_L(&Lst,p,v));
printf("\nNow the list length is %d.\n",Lst.data);
j=1;
for(k=Lst.next;k;k=k->next){printf("%d\t%d\n",j,*k);++j;}
}
if(c==2)
{
printf("Please input the position:");
scanf("%d",&p);
dsply(ListDelete_L(&Lst,p,&v));
printf("\nNow the list length is %d.\n",Lst.data);
j=1;
for(k=Lst.next;k;k=k->next){printf("%d\t%d\n",j,*k);++j;}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -