单链表的创建、插入和删除
- 格式:doc
- 大小:32.00 KB
- 文档页数:4
单链表的创建、插入和删除
(数据结构)
——SVS
#include
#include
#include
typedef int ElemType;
typedef int Status;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
void InitList_Link(LinkList L) //创建空链表
{
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
}
Status InsertList_Link(LinkList L,int i,ElemType e) //插入链表
{
LinkList s,p=L;
int j=0;
while(p&&j
if(!p||j>i-1)return -1;
s=(LinkList)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return 1;
}
Status DeleteList_Link(LinkList L,int i,ElemType e) //删除链表
{
LinkList q,p=L;int j=0;
while(p->next&&j
if(!(p->next)||j>i-1)return -1;
q=p->next;
e=q->data;
p->next=q->next;
free(q);
return 1;
}
void OutPutList_Link(LinkList L) //输出链表
{
printf("表中值为:");
LinkList p=L->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void CreateList_Link(LinkList L,int len) //创建链表
{
int i;
LinkList s,p=L;
for(i=0;i { s=(LinkList)malloc(sizeof(LNode)); printf("N%d: ",i+1); scanf("%d",&s->data); s->next=NULL; p->next=s; p=s; } } int main() { int len; LinkList L; ElemType e; L=(LinkList)malloc(sizeof(LNode)); printf("请输入表长: "); scanf("%d",&len); CreateList_Link(L,len); OutPutList_Link(L); /*插入*/ int num1; int num2; printf("请输入要插入元素的位置:"); scanf("%d",&num1); printf("请输入要插入的元素:"); scanf("%d",&num2); InsertList_Link(L,num1,num2); printf("插入后 :"); OutPutList_Link(L); int a; int b=0; printf("请输入要删除元素的位置:"); scanf("%d",&a); DeleteList_Link(L,a,b); printf("删除后:"); OutPutList_Link(L); }