Artistdreamer 2021-10-10 15:12 采纳率: 50%
浏览 32

刚开始接触数据结构 想知道这个合并哪里出问题了

#include<stdio.h>
#include<stdlib.h>
#include<windef.h>
#define MAXSIZE 100
typedef struct{              //定义顺序表 
    int *elem;
    int length; 
}List;
void InitList(List &L)       //创建顺序表 
{
    L.elem=new int [MAXSIZE];
    L.length=0; 
}

void ListInput(List &L,int n)     //顺序表数据的输入
{
    int i;
    printf("请输入%d个数\n",n);
    for(i=0;i<n;i++)
       scanf("%d",&L.elem[i]);
       L.length=n; 

int ListLength(List L)           //求顺序表的长度
{
    return L.length; 
}

void GetELem(List L,int i,int &e)     //求顺序表的第i个元素,并以e返回
{
    e=L.elem[i-1];
}

bool LocateElem(List L,int e)         //判断List里有没有e这个元素
{
    int i;
    for(i=0;i<L.length;i++)
       if(e==L.elem[i])
         return true;
        else
         return false; 

 
void ListInsert(List &L,int e)     //将e插入到List的最后
{
    L.elem[L.length]=e;
    L.length++; 

void ListOutput(List L)              //输出List
{
    int i;
    for(i=0;i<L.length;i++)
       printf("%d",L.elem[i]); 
}

void unionList(List &LA,List LB)      //线性表的合并,将所有在线性表LB中但不在LA中的数据元素插入到LA中 
{
    int  LA_len,LB_len,i,e;
    LA_len=ListLength(LA);LB_len=ListLength(LB); //求线性表的长度
    for(i=1;i<=LB_len;i++)
    {
        GetElem(LB,i,e);              //取LB中第i个数据元素赋给e
        if(!LocateELem(LA,e))         //LA中不存在和e相同的数据元素,则插入
           ListInsert(LA,e); 
    } 
}

int main()
{
    List LA,LB;
    int n,m;
    InitList(LA);
    InitList(LB);
    
    printf("请输入线性表LA的元素个数:");
    scanf("%d",&n);
    ListInput(LA,n);
    printf("请输入线性表LB的元素个数:");
    scanf("%d",&m);
    ListInput(LB,m);
    unionList(LA,LB);
    
    printf("LA和LB合并后的集合为:\n");
    ListOutput(LA);
    return 0;
}

 

  • 写回答

1条回答 默认 最新

  • 赵4老师 2023-01-06 15:41
    关注

    代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
    提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
    单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月10日

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码