#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
typedef struct node
{
int date;
struct node *next;
}slnode,*Linknode;
Linknode creat_list()
{
Linknode head;
int n;
head=(Linknode)malloc(sizeof(slnode));
head->next=NULL;
cout<<"请输入结点个数"<<endl;
cin>>n;
cout<<"请输入结点元素"<<endl;
head->date=n;
for (int i=0;i<n;i++)
{
Linknode p ;
p=(Linknode)malloc(sizeof(slnode));
p->next=head->next;
head->next=p;
cin>>p->date;
};
return head;
}
void display_list(Linknode L)
{
Linknode p;
p=L;
cout<<"输出"<<endl;
for(int i=0;i<L->date;i++)
{
p=p->next;
cout<<p->date;
};
}
Linknode intsert_node(Linknode L)
{
int locat;
int ielement;
Linknode Ielement,p;
Ielement=(Linknode)malloc(sizeof(slnode));
Ielement->next=NULL;
cout<<"插人的元素:"<<endl;
cin>>ielement;
Ielement->date=ielement;
p=(Linknode)malloc(sizeof(slnode));
p=L;
cout<<"插入第几个结点:"<<endl;
cin>>locat;
L->date=L->date+1;
for(int i=0;i<locat-1;i++)
{
L=L->next;
};
Ielement->next=L->next;
L->next=Ielement;
return p;
}
Linknode delete_node (Linknode L)
{
Linknode p;
int locat;
p=(Linknode)malloc(sizeof(slnode));
p=L;
cout<<"请输入删除结点的位子"<<endl;
cin>>locat;
if(locat=L->date)
{
for(int i=0;i<locat-1;i++)
L=L->next;
L->next=NULL;
}
else {
for(int i=0;i<locat-1;i++)
L=L->next;
L->next=L->next->next;
};
return p;
}
void main()
{
Linknode p,q;
p=creat_list();
display_list(p);
q=intsert_node(p);
display_list(q);
display_list(delete_node(q));
free (p);
}
程序运行到删除程序输出时出错;