头插法:元素插在链表头部(倒序)
尾插法:元素插在链表尾部,需设置尾指针(正序)
#include<iostream>
using namespace std;
#define OK 1
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*LinkList;
void Show(LinkList L){
while(L->next){
cout<<L->next->data<<' ';
L=L->next;
}
cout<<endl;
}
//创建链表(头插法)
void CreateList_H(LinkList &L,int n){
L=new Lnode;
L->next=NULL;
for(int i=n;i>0;--i){
Lnode *p=new Lnode;
cin>>p->data;
p->next=L->next;
L->next=p;
}
}
//创建链表(尾插法)
void CreateList_R(LinkList &L,int n){
L=new Lnode;
L->next=NULL;
Lnode *r=L;
for(int i=0;i<n;i++){
Lnode *p=new Lnode;
cin>>p->data;
p->next=NULL;
r->next=p;
r=p;
}
}
int main(){
LinkList L1,L2;
cout<<"(1)头插法"<<endl<<"请输入链表元素:";
CreateList_H(L1,5);
cout<<"头插法建立的链表为:";
Show(L1);
cout<<"(2)尾插法"<<endl<<"请输入链表元素:";
CreateList_R(L2,5);
cout<<"尾插法建立的链表为:";
Show(L2);
return 1;
}
运行结果