• 线性表—— 将两个递增有序链表合并为一个递增的有序链表。 结果链表仍使用原来的两个链表的储存空间,不另外占用其他的存储空间。


     将两个递增有序链表合并为一个递增的有序链表。  结果链表仍使用原来的两个链表的储存空间,不另外占用其他的存储空间。

    也就是求AB交集

    //“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;
    
    /*
     将两个递增有序链表合并为一个递增的有序链表。
     结果链表仍使用原来的两个链表的储存空间,不另外占用其他的存储空间。
     表无重复的数据
    
    */
    
    int main(){
    
        LinkList LA;
        LinkList LB;
        LinkList LC;
    
        InitList(LA);
        InitList(LB);
        for(int i=1;i<=5;i++){
            int a ;
            cin>>a;
            ListInsert(LA,i,a);
        }
        cout<<"done";
        for(int i=1;i<=5;i++){
            int a ;
            cin>>a;
            ListInsert(LB,i,a);
        }
    
        LNode *pa = LA->next;
        LNode *pb = LB->next;
    
        LC=LA;
        LNode*pc=LC;
        while(pa&&pb){
            // if(pa->data==pb->data){   //不允许表有重复的数据
            //     pc->next=pa;
            //     pc=pa;
            //     pa=pa->next;
            //     pb=pb->next;
            // }else{
            if(pa->data<=pb->data){
                pc->next=pa;
                pc=pa;
                pa=pa->next;
            }else
            {
                pc->next=pb;
                pc=pb;
                pb=pb->next;
            }
        }
        // }
        pc->next=pa?pa:pb;
        delete LB;
            ShowList(LA);
            system("pause");
            return 0;
        }

    分别输入5个数填充到两个链表中。

  • 相关阅读:
    小程序模板
    小程序 if else
    小程序入门小知识
    懒加载
    展示效果
    五星评价
    萤火虫效果
    下雪效果
    选项卡
    VUE组件中 data 里面的数据为什么要return 出来
  • 原文地址:https://www.cnblogs.com/LuMinghao/p/13995266.html
Copyright © 2020-2023  润新知