当前位置:文档之家› 数据结构链表代码

数据结构链表代码

#include<iostream.h>
typedef struct lnode{
int data;
lnode *next;
}lnode;
void initlist(lnode *&head){
head=new lnode;
head->next=NULL;
}//带头结点空链表的判断条件
/*void initlistn(lnode *&head,int n){ initlist1(head);
lnode *s;
for(int i=0;i<n;i++){
s=new lnode;
cin>>s->data;
s->next=head->next;
head->next=s;
}
}//逆序*/
void initlistn(lnode *&head,int n){
initlist(head);
lnode *p=head,*s;
for(int i=0;i<n;i++){
s=new lnode;
cin>>s->data;
s->next=NULL;
p->next=s;
p=s;
}
}//正序
void print(lnode *head){
lnode *p=head->next;
while(p){
cout<<p->data<<' ';
p=p->next;
}
cout<<endl;
}//打印
void inserlist(lnode *&head,int i,int e){ lnode *p=head;
int j=0;
while(p&&j<i-1){p=p->next;j++;}
if(!p||j>i-1) return;
lnode *s=new lnode;
s->data=e;
s->next=p->next;
p->next=s;
}//插入
void deletelist(lnode *&head,int i,int &e){ lnode *p=head;
int j=0;
while(p->next&&j<i-1){p=p->next;j++;}
if(!p->next||j>i-1) return;
lnode *q=p->next;
e=q->data;
p->next=q->next;
}//删除
void main(void){
lnode *head;
initlistn(head,10);
print(head);
inserlist(head,6,200);
print(head);
int e;
deletelist(head,8,e);
print(head);
}。

相关主题