循环列表设立头指针和尾指针

#include<iostream>
using namespace std;
typedef struct Lnode{
 int data;
 struct Lnode *next;
}Lnode,*Linklist;
int Init(Linklist& L){
 L=(Linklist)malloc(sizeof(Lnode));
 if(!L)return -1;
 L->next=L;
  L->data=NULL;
 return 0;
}
int shuru(int m,Linklist&L){
 Linklist A=L;
 for(int i=0;i<m;i++){
  int j;
  cout<<i+1<<":";
  cin>>j;
  Linklist S;
  S=(Linklist)malloc(sizeof(Lnode));
  S->data=j;
  A->next=S;
  S->next=L;
  A=S;
 }
return 0;
}
int shuchu(Linklist &L){
 Linklist A=L->next;
 while(A->next->data){
 cout<<A->data<<"-->";
 A=A->next;
 }
 cout<<A->data;
 return 0;
}
int wei(Linklist L,Linklist &wei){
 Linklist A=L->next;
 while(A->next->data){
  A=A->next;
 }
  wei=A;
 return 0;
}
int hebin(Linklist &wei1,Linklist& wei2,Linklist L1,Linklist L2)
{
wei1->next=L2->next;
wei2->next=L1;
return 0;
}

int main(){
 Linklist L;
 int j;
 Init(L);
 cout<<"输入的个数"<<endl;
 cin>>j;
 shuru(j,L);
 shuchu(L);
 Linklist S;
 Init(S);
 cout<<endl;
 cout<<"输入的个数"<<endl;
 cin>>j;
 shuru(j,S);
 shuchu(S);
 cout<<endl;
Linklist wei1,wei2;
wei(L,wei1);
wei(S,wei2);
hebin(wei1,wei2,L,S);
shuchu(L);
cout<<endl;
 return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值