202230.cpp

来自「数据结构(清华版)」· C++ 代码 · 共 65 行

CPP
65
字号
#include<iostream.h>
typedef int Elemtype;
//构建结构体
typedef struct LNode
{
	Elemtype data;
	LNode *next;
}*LList ;
//创建链表
void ListCreate(LList &L,int n,Elemtype a[])
{
	LList s;
	L=new LNode;L->next=NULL;
	for(int i=n-1;i>=0;i--)
	{
		s=new LNode;
		s->data=a[i];
		s->next=L->next;
		L->next=s;
	}
}
//除去与B C交集后剩余链表A 中元素
void ListSameOtherBC(LList &A,LList &B,LList &C)
{
	LList t, p,q,r,s;
	t=A;p=t->next;q=B->next;r=C->next;
	while(p&&q&&r)
	{
		if(p->data>q->data) q=q->next;
		if(p->data<q->data) t=p;p=p->next;
        while(p->data==q->data)
		{
			if(r->data<p->data) r=r->next;
			if(r->data==p->data)
			{
				s=p;p=p->next;delete s;
				t->next=p;
				break;
			}
		}
	}
}
//主函数
void main()
{
	LList A,B,C,p;//声明线性表
	Elemtype a[]={1,2,3,4,5,6,7};
	Elemtype b[]={1,4,7};
	Elemtype c[]={2,4,7};
	ListCreate( A,7,a);//调用构建函数
	ListCreate( B,3,b);
	ListCreate( C,3,c);
    ListSameOtherBC(A,B,C);//调用函数
	cout<<"除去与B C交集后链表A 中元素";
	p=A->next ;
	while(p)
	{
		cout<<" "<<p->data<<"  ";	
		p=p->next;
	}
   cout<<endl;
}


⌨️ 快捷键说明

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