• 线性表——求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;
    // }
  • 相关阅读:
    java——基础数据类型——set集合操作
    java——基础数据类型——ArrayList集合操作
    java——基础数据类型——list集合操作
    java——基础数据类型——时间操作
    java——基础数据类型——字符串操作
    404异常
    IDEA拷贝操作
    IDEA配置tomcat
    IDEA的字体设置
    中央处理器的配置(servlet的配置)
  • 原文地址:https://www.cnblogs.com/LuMinghao/p/13996394.html
Copyright © 2020-2023  润新知