线性表——求AB差值(A出现而不在B出现)

 

//“LinkList.h”
#include<iostream>
using namespace std;

#define ElemType int

typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

string InitList(LinkList &L){
    L = new LNode;
    L->next = NULL;
    return "OK";
}

string ListInsert(LinkList &L,int i,ElemType e){
    LinkList P = L;
    int j=0;
    while (P && (j<i-1))
    {       
        P = P->next;++j;    
    }
    LinkList S = new LNode;
    S->data = e;
    S->next=P->next;
    P->next=S;
    return "OK";   
}

ElemType GetElement(LinkList L,int i){
    LinkList p = L;
    int j = 1;
    while(p && j<i){
        p=p->next;
        j++;
    }
    if(!p||j>i){
        return -1;
    }
    return p->data;
}

string DeleteList(LinkList &L,int i){
    LinkList p = L;
    int j = 0;
    while ((p->next)&&(j<i-1))
    {
        p=p->next;
        j++;
    }
    if(!(p->next)||(j>i-1))
        return "ERROR";
    LinkList q = p->next;
    p->next=q->next;
    delete q;
    return "OK";
    
}

string ShowList(LinkList L){
    LinkList p= L;
    while(p->next){
        p=p->next;
        cout<<p->data;
    }
    return "OK";
}

// int main(){
//     LinkList L;
//     InitList(L);
//     int p =1;
//     char a = '1';
//     while (a != '!')
//     {
//         char b ;
//         cin >> b;
//         ElemType e = (ElemType)b - 48;
//         a = b;
//         if(a != '!')
//             cout << ListInsert(L,p,e)<<endl;
//         p++;
//     }
    
//     ShowList(L);

// DeleteList(L,2);
// ShowList(L);
//     return 0;
// }

 

 

#include<iostream>
#include"LinkList.h"
using namespace std;

/*
 求AB差集

*/

int main(){

    LinkList LA;
    LinkList LB;
    LinkList LC;

    InitList(LA);
    InitList(LB);
    InitList(LC);
    for(int i=1;i<=5;i++){  //输入五个数填充链表
        int a ;
        cin>>a;
        ListInsert(LA,i,a);
    }
    cout<<"done"<<endl;

    for(int i=1;i<=5;i++){
        int a ;
        cin>>a;
        ListInsert(LB,i,a);
    }

    LNode *pa = LA->next;
    LNode *pb = LB->next;

    int m = 0;
    int n = 0;

    LNode*pc=LC;
    while(pa){

        while(pb){
            if(pa->data==pb->data)  //检查有无重复元素
                m=1;
            pb=pb->next;
        }
    if(m==0){
        n++;                        //若无,添加到LC中
    ListInsert(LC,n,pa->data);
    }
    pa=pa->next;
    m=0;
    pb=LB;

    }
 
    delete LB;
        cout<<"差集为: ";
        ShowList(LC);
        cout<<endl<<"number: "<<n;
        system("pause");
        return 0;
    }

 

 

 

#include<iostream>
using namespace std;

#define ElemType int

typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

string InitList(LinkList &L){
    L = new LNode;
    L->next = NULL;
    return "OK";
}

string ListInsert(LinkList &L,int i,ElemType e){
    LinkList P = L;
    int j=0;
    while (P && (j<i-1))
    {       
        P = P->next;++j;    
    }
    LinkList S = new LNode;
    S->data = e;
    S->next=P->next;
    P->next=S;
    return "OK";   
}

ElemType GetElement(LinkList L,int i){
    LinkList p = L;
    int j = 1;
    while(p && j<i){
        p=p->next;
        j++;
    }
    if(!p||j>i){
        return -1;
    }
    return p->data;
}

string DeleteList(LinkList &L,int i){
    LinkList p = L;
    int j = 0;
    while ((p->next)&&(j<i-1))
    {
        p=p->next;
        j++;
    }
    if(!(p->next)||(j>i-1))
        return "ERROR";
    LinkList q = p->next;
    p->next=q->next;
    delete q;
    return "OK";
    
}

string ShowList(LinkList L){
    LinkList pL;
    while(p->next){
        p=p->next;
        cout<<p->data;
    }
    return "OK";
}

// int main(){
//     LinkList L;
//     InitList(L);
//     int p =1;
//     char a = '1';
//     while (a != '!')
//     {
//         char b ;
//         cin >> b;
//         ElemType e = (ElemType)b - 48;
//         a = b;
//         if(a != '!')
//             cout << ListInsert(L,p,e)<<endl;
//         p++;
//     }
    
//     ShowList(L);

// DeleteList(L,2);
// ShowList(L);
//     return 0;
// }
posted @ 2020-11-17 20:48  倔强的不死人  阅读(230)  评论(0编辑  收藏  举报