建立链表

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:36:02
实验题目:
1. 建立一个链表;
2. 输出链表结点个数;
3. 删除第M个结点;
4. 在第N个结点后插入一个新结点;

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
typedef int ElemType;

typedef struct LNode {
ElemType date;
struct LNode *next;
}linklist,*link;

void IinitList(link &L)
{
if(L)delete L;
L= (link)malloc(sizeof(LNode)) ;
if (!L) exit(1);
L->next=NULL;
cout<<"链表已经建立\n";
}

int listdelete(link &L,int i,ElemType &e)
{
link p,q; int j;
p=L;j=0;
while(p->next&&j<i-1)
{
p=p->next;++j;
}

q=p->next;
p->next=q->next;
e=q->date;free(q);
cout<<"链表已经删除\n";
return 1;
}

int listinsert(link &L,int i,ElemType e)
{
link p,q;
int j;
p=L;j=0;
while(p&&j<i-1)
{
p=p->next;++j;
}
q= (link)malloc(sizeof(LNode));
q->date=e;
q->next=p->next;
p->next=q; cout<<&