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

📄 datas..cpp

📁 各线性表采用单链表作为存储结构; 题中任一线性表中的元素值可以相同。 测试用例自己设计。
💻 CPP
字号:
	#include <iostream>
	using namespace std;
	
	struct LNode    //声明定义链表结构
	{ 
	float data;
	LNode * next;
	};
	
	LNode *createlist(char a)      //创建线性表a
	{
		LNode *l,*p,*head;
		float c;
		int n;
		l=new LNode;
		l->next=NULL;
		head=l;
		cout<<"请输入线性表"<<a<<"中元素个数:";
		cin>>n;
		cout<<"递增输入线性表"<<a<<"中元素:"<<endl;
	    for(int i=n;i>0;--i)        //循环递增输入n个元素
		{
			p=new LNode;
			cin>>c;
			p->data=c;
			l->next=p;
			l=p;
			p->next=NULL;
		}
		return head;
	}
	
	void printlist(LNode *l)    //打印链表元素
	{
		LNode *p=l->next;
		cout<<"删除B,C相同元素后线性表A中元素为:";
		while(p!=NULL)
		{
			cout<<p->data<<' ';
			p=p->next;
		}
	}
	
	LNode *comparelist(LNode *a,LNode *b)  //比较两个链表中相同元素并返回
	                                       //一个用来存储这些相同元素的新链表
	{
		LNode *p=a->next;
		LNode *q=b->next;
		LNode *r,*n,*same;
		r=new LNode;
		r->next=NULL;
		same=r;
		while(p&&q)
		{
			if(p->data<q->data)
			{
				p=p->next;
			}
			else if(p->data>q->data){
				q=q->next;}
			else {                        //找到data相同的结点加入到新链表中
				n=new LNode;
				n->data=p->data;
				r->next=n;
				r=n;
				n->next=NULL;
				p=p->next;
			}
		}
		return same;
	}
	
	LNode *ListDelete(LNode *a,LNode *b)  //从a表中删除在b表中存在的元素
	{
		LNode *p=a->next;
		LNode *q=b->next;
		LNode *l;
		l=a;
	    while(p&&q)
		{
			if(p->data<q->data)
			{
				l=l->next;
				p=l->next;
			}
			else if(p->data>q->data)
			{
				q=q->next;
			}
			else {                        //删除data相同的结点
				l->next=p->next;
				p=l->next;
			}
		}
		return a;
	}
	
	int main()
	{
		char a,b,c;
		a='A';b='B';c='C';
		LNode *ListA,*ListB,*ListC,*CMP,*NewListA;
		ListA=createlist(a);  //创建A表
		ListB=createlist(b);  //创建B表
		ListC=createlist(c);  //创建C表
		CMP=comparelist(ListB,ListC);    //找出B,C表中相同的元素,并新建一链表CMP存放这些元素
	    NewListA=ListDelete(ListA,CMP);  //从A表中删除在CMP中出现的元素,得到新表NewListA
		printlist(NewListA);  //打印结果
		return 0;
	}

⌨️ 快捷键说明

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