📄 实验二.txt
字号:
# include <stdio.h>
# include<malloc.h>
# define ND sizeof(struct List)
struct List
{int data;
struct List *next;
};
void main()
{ int n,i=1,e,a;
struct List *head;
struct List *p,*q;
q=head=p=(struct List *)malloc(ND);
printf("输入链表的节点数:");
scanf("%d",&n);
printf("输入第1个结点的数据:");
scanf("%d",&p->data);
i++;
while(i<=n)
{ q=(struct List *)malloc(ND);
p->next=q;
printf("输入第%d个结点的数据:",i);
scanf("%d",&q->data);
p=q;
i++;
} /*从键盘输入链表数据*/
q->next=NULL;
q=p=head;
printf("所输入的链表数据:");
while(p!=NULL)
{ printf("%6d",p->data);
p=p->next;
}
printf("\n");
printf("输入要删除第几个结点:");
scanf("%d",&e);
p=head;
i=1;
if(e>n||e<1)
{ printf("ERROR!!!!!!!\n");
return;
}
else
{ if(e==1)
{ p=p->next;
free(head);
head=p;
}
else
{ while(p->next&&i<e-1)
{ p=p->next;
i++;
}
q=p->next;
p->next=q->next;
free(q);
p=head;
}
} /*删除链表中指定的结点*/
printf("删除后的链表数据:");
while(p!=NULL)
{ printf("%6d",p->data);
p=p->next;
}
printf("\n输入要在第几个结点前插入:");
scanf("%d",&e);
printf("输入所要插入的数据:");
scanf("%d",&a);
p=head;
i=1;
if(e>n||e<1)
{ printf("ERROR!!!!!!!\n");
return;
}
else
{ if(e==1)
{ q=(struct List *)malloc(ND);
q->data=a;
q->next=p;
head=p=q;
}
else
{ while(p->next&&i<e-1)
{ p=p->next;
i++;
}
q=(struct List *)malloc(ND);
q->data=a;
q->next=p->next;
p->next=q;
p=head;
}
} /*在指定结点前插入新结点*/
printf("插入结点后的链表:");
while(p!=NULL)
{ printf("%6d",p->data);
p=p->next;
}
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -