⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 04071402224.cpp

📁 数据结构链表的C++源程序,实现简单易懂,绝对正确,直接就可以运行,不需做任何修改.
💻 CPP
字号:
//使用原空间把递增排列的链表A和B合并为按元素递减排列的链表C
#include<iostream.h>
typedef int elemtype;
#include"04071402llist.h"

void list_merge_reverse(llist &A,llist &B) 
{
	llist pa,pb,pre,p,q;
	pa=A->next;pb=B->next;pre=A;                      //pa和pb分别指向A,B的当前元素
	while(pa&&pb)
	{
		if(pa->data<=pb->data)
		{
			pre->next=pa;pre=pa;pa=pa->next;           
		}
        else
		{
			pre->next=pb;pre=pb;pb=pb->next;            
		}
	}
    if(!pa)
		pre->next=pb;
	else
		pre->next=pa;
	if(A->next)                       //判断是否为空表
	{
		p=A->next->next;A->next->next=NULL;
	    while(p)  {q=p->next;p->next=A->next;A->next=p;p=q;}
	}
}

void main()                  //主函数
{
	llist A,B;
	elemtype *a,*b;
	int m,n;
	cout<<"请输入链表存储数据的个数:"<<endl;
	cin>>m;
	a=new elemtype[m];
    cout<<"请依次输入链表所存储的元素:"<<endl;
	for(int i=0;i<m;i++)
		cin>>a[i];
	listcreat(A,m,a);
	cout<<"请输入链表存储数据的个数:"<<endl;
	cin>>n;
	b=new elemtype[n];
    cout<<"请依次输入链表所存储的元素:"<<endl;
	for(i=0;i<n;i++)
		cin>>b[i];
	listcreat(B,n,b);
	list_merge_reverse(A,B);
    if(A->next)
	{
		cout<<"合并后的链表为:"<<endl;
	    listtraverse(A);
	}
	else
		cout<<"合并后的链表为空表!";
	cout<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -