前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >线性表

线性表

作者头像
凡尘扰凡心
发布2023-02-27 15:05:54
1820
发布2023-02-27 15:05:54
举报
文章被收录于专栏:默认分类

2.设计一个程序,生成两个按值非递减有序排列的线性表LA和LB,再将LA和LB归并为一个新的线性表LC,且LC中的数据仍按值非递减有序排列,输出线性表LA、LB、LC。

代码语言:javascript
复制
#include
using namespace std;
struct node
{
    int data;
    node *next;
};
class linklist
{
private:
    int length_a;
    node *first;

public:
    
    linklist(){
        first=new node;
        first->next=NULL;
    }
    linklist(int a[],int len_a);
    void display();//输出函数
    void appendd(int num);//在单链表尾部添加数据
    ~linklist(){}
    friend linklist through(linklist &a,linklist &b);//友元函数,访问两个类,并且将加得的单链表,作为一个类返回;



};
linklist::linklist(int a[],int len_a)
{
    first=new node;
    node *p=first;
    for(int i=0;idata=a[i];
        p->next=s;
        p=s;
    }
    p->next=NULL;

}
void linklist::appendd(int num){
    node *p=first;
    while(p->next!=NULL)
    {
        p=p->next;
    }
    node *s=new node;
    s->data=num;
    p->next=s;
    p=s;
    p->next=NULL;
    
}

linklist through(linklist &a,linklist &b)
{   
    linklist m;
    node *p1=a.first->next;
    node *p2=b.first->next;
    while(p1!=NULL || p2!=NULL)
    {
        if(p1!=NULL && p2!=NULL)
        {   
            if((p1->data)<=(p2->data))
            {
                m.appendd(p1->data);
                m.appendd(p2->data);
            }
            else
            {
                m.appendd(p2->data);
                m.appendd(p1->data);
            }
            p1=p1->next;
            p2=p2->next;

        }
        else if(p1==NULL && p2!=NULL)
        {   
            m.appendd(p2->data);
            p2=p2->next;
        }
        else
        {
            m.appendd(p1->data);
            p1=p1->next;
        }
        
    }
    return m;
}
void linklist::display()
{
    node *p=first->next;
    while(p!=NULL)
    {
        cout<data<next;


    }
}

int main()
{
    int a[3]={1,3,5},b[5]={2,4,6,7,9};
    linklist link_a(a,3),link_b(b,5),link_c;
    link_c=through(link_a,link_b);
    link_c.display();
    system("pause");
}

代码还是有一点有问题的,只能按一对一的大小排序,要真正实现升序,需要对链表进行排序

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档