合并两个 循环单链表(尾指针指向)
#include<iostream>using namespace std;#define OK 1typedef struct Lnode{int data;struct Lnode *next;}Lnode,*LinkList;//初始化int InitList(LinkList &T){T=new Lnode;T->next=T;return OK;}//创建循环链
·
#include<iostream>
using namespace std;
#define OK 1
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*LinkList;
//初始化
int InitList(LinkList &T){
T=new Lnode;
T->next=T;
return OK;
}
//创建循环链表(带尾指针)
void CreateList(LinkList &T,int n){
Lnode *p=T; //p存放头指针
for(int i=0;i<n;i++){
Lnode *s=new Lnode;
cin>>s->data;
T->next=s;
T=s;
}
T->next=p;
}
//测试
void Test(LinkList T){
cout<<"尾结点:"<<T->data<<endl;
cout<<"首元结点:"<<T->next->next->data<<endl;
}
//显示链表
void Show(LinkList T){
Lnode *p=T->next->next;
while(p!=T->next){
cout<<p->data<<' ';
p=p->next;
}
cout<<endl;
}
//合并Ta,Tb链表
LinkList Connect(LinkList Ta,LinkList Tb){
Lnode *p=Ta->next; //p存放头结点
Ta->next=Tb->next->next; //Ta.Tb首尾相接
delete Tb->next; //删除Tb头结点
Tb->next=p; //修改Tb尾结点
return Tb;
}
int main(){
LinkList Ta,Tb;
InitList(Ta);
InitList(Tb);
cout<<"请输入5个链表Ta中的元素:";
CreateList(Ta,5);
cout<<"链表Ta为:";
Show(Ta);
Test(Ta);
cout<<"请输入3个链表Tb中的元素:";
CreateList(Tb,3);
cout<<"链表Tb为:";
Show(Tb);
Test(Tb);
LinkList Tc=Connect(Ta,Tb);
cout<<endl<<"合并后链表Tc为:";
Show(Tc);
return 1;
}
运行结果

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)