已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和集合B的差集(近由在A中出现而不再B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。
生活随笔
收集整理的這篇文章主要介紹了
已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和集合B的差集(近由在A中出现而不再B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>
using namespace std;
//第四題
typedef struct Lnode
{int data;struct Lnode *next;} lnode, *linklist;
void creatlist_h(linklist &L, int n)
{lnode *p;L=new lnode;L->next=NULL;for(int i=0; i<n; i++){p=new lnode;cin>>p->data;p->next=L->next;L->next=p;}
}
void merge_list(linklist &La, linklist &Lb, linklist &Lc)
{lnode *pa, *pb;Lc = La;pa = La->next;pb = Lb->next;while (pa && pb){if (pb->data == pa->data){pa = pa->next;La->next = pa;}else if (pb->data < pa->data){pb = pb->next;}else{pa = pa->next;La = La->next;}}delete Lb;
}
void display(linklist L)
{lnode *p;p = L->next;while (p){if (p->next == NULL){cout << p->data;}else{cout << p->data << " ";}p = p->next;}
}int main()
{linklist LA, LB, LC;int m,n;cout << "請輸入鏈表LA長度:";cin >> m;creatlist_h(LA, m);cout << "請輸入鏈表LB長度:";cin >> n;creatlist_h(LB, n);merge_list(LA, LB, LC);display(LC);return 0;
}
總結
以上是生活随笔為你收集整理的已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和集合B的差集(近由在A中出现而不再B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五字游戏昵称大全 很仙的五字游戏id
- 下一篇: [编程入门]阶乘求和:求Sn=1!+2!