11.16线性表A,B顺序存储合并

 

复制代码
#include<iostream>
#include<cstring>
using namespace std;
typedef struct f{
    int data;
    f* next;
}node,*Node;
void build(f *p){
    int x;
    while(cin>>x&& x != -1){
        f *now=new node();
        now->data=x;
        now->next=p->next;
        p->next=now;
    }
}
void build(Node p1,Node p2,Node p3){
    p1=p1->next;
    p2=p2->next;
    while(p1!=NULL&&p2!=NULL){
        if(p1->data<=p2->data){
            Node now=new node();
            now->data=p1->data;
            now->next=p3->next;
            p3->next=now;
            p3=p3->next;
            p1=p1->next;
        }
        else{
            Node now=new node();
            now->data=p2->data;
            now->next=p3->next;
            p3->next=now;  
            p3=p3->next;
            p2=p2->next;
        }
    }
    while(p1!=NULL){
        Node now=new node();
        now->data=p1->data;
        now->next=p3->next;
        p3->next=now;
        p3=p3->next;
        p1=p1->next;
    }
    while(p2!=NULL){
        Node now=new node();
        now->data=p2->data;
        now->next=p3->next;
        p3->next=now;
        p3=p3->next;
        p2=p2->next;
    }
}
void flush(Node p){
    if(p)p=p->next;
    Node pre=p;
    if(p)p=p->next;
    while(p!=NULL){
        if(p->data==pre->data){
            pre->next=p->next;
            Node k=p;
            p=p->next;
            delete k;
        }
        else{
            pre=p;
            p=p->next;
        }
    }
}
void show(Node p){
    p=p->next;
    while(p!=NULL){
        cout<<p->data;
        p=p->next;
        if(p!=NULL) cout<<',';
    }
}
int main(){
    Node p1=new node();
    p1->next=NULL;
    build(p1);
    
    Node p2=new node();
    p2->next=NULL;
    build(p2);
    
    Node p3=new node();
    p3->next=NULL;
    build(p1,p2,p3);
    flush(p3);
    
    show(p3);
    
    return 0;
}
复制代码

先定义结构体包括data,next;再new两个新链表build插入相应的数(尾插法);再建一个build函数来处理这两个链表,对比这两个链表中的结点大小,小的存储进新的链表p3中,最后如果链表p1,p2哪个还剩下结点,直接插入p3中(尾插法);最后判断p3中重复的结点并删除,最后输出链表。

posted @   艾鑫4646  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示