顺序表实现A=AUB,求大神帮忙看一下,问题出在哪里?

吱唔猪 2019-05-18 10:08:12
#include<stdio.h> #include<malloc.h> #define MAXSIZE 10 typedef int elemtype; typedef struct sequlist { elemtype data[MAXSIZE]; int last; } SequenList; //定义顺序表 //初始化表 SequenList * InitList() { SequenList *L; L=(SequenList * )malloc(sizeof(SequenList)); if(L!=NULL) { L->last=-1; } return L; } //获取数组长度 int SequenList_Length(SequenList *L) { return(L->last+1); } //插入数据元素 int Insert_SequenList(SequenList *L, elemtype x, int i) { int j; if(L->last=MAXSIZE-1) return 0; if(i<1||i>L->last+2) return -1; for(j=L->last;j>=i-1;j--) L->data[j+1]=L->data[j]; L->data[i-1]=x; L->last=L->last+1; return 1; } //获取数据元素 elemtype GetData_SequenList(SequenList *L, int i) { if(i<1||i>L->last+1) return 0; else return (L->data[i-1]); } //搜索数据元素 int Search_SequenList(SequenList *L,elemtype key) { int i; for(i=0;i<=L->last;i++) if(L->data[i]==key) return (i+1); else return 0; } //合并表 void Union_SequenList(SequenList *LA, SequenList *LB) { int i, len_la, k; elemtype x; len_la=SequenList_Length(LA); for(i=1;i<=LB->last+1;i++) { x=GetData_SequenList(LB,i); k=Search_SequenList(LA,x); if(k==0) { Insert_SequenList(LA,x,len_la+1); len_la=SequenList_Length(LA); } } } void main() { int i; int n,m; SequenList *LA; LA=InitList(); printf("请输入LA的表长: "); scanf("%d",&n); LA->last=n-1; printf("请输入LA中的数据元素:\n"); for(i=0;i<LA->last+1;i++) { scanf("%d",&LA->data[i]); } SequenList *LB; LB=InitList(); printf("\n请输入LB的表长: "); scanf("%d",&m); LB->last=m-1; printf("\n请输入LB中的数据元素:\n"); for(i=0;i<LB->last+1;i++) { scanf("%d",&LB->data[i]); } Union_SequenList(LA,LB); printf("\n合并到LA表后:\n"); for(i=0;i<LA->last+1;i++) printf("%d ",LA->data[i]); printf("\n\n"); }
...全文
57 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Italink 2019-05-19
  • 打赏
  • 举报
回复
粗心了

int Insert_SequenList(SequenList * L, elemtype x, int i)
{
int j;
if (L->last == MAXSIZE - 1) //Error: = -> ==
return 0;
if (i<1 || i>L->last + 2)
return -1;
for (j = L->last; j >= i - 1; j--)
L->data[j + 1] = L->data[j];
L->data[i - 1] = x;
L->last = L->last + 1;
return 1;
}
吱唔猪 2019-05-19
  • 打赏
  • 举报
回复
引用 1 楼 Italink 的回复:
粗心了

int Insert_SequenList(SequenList * L, elemtype x, int i)
{
int j;
if (L->last == MAXSIZE - 1) //Error: = -> ==
return 0;
if (i<1 || i>L->last + 2)
return -1;
for (j = L->last; j >= i - 1; j--)
L->data[j + 1] = L->data[j];
L->data[i - 1] = x;
L->last = L->last + 1;
return 1;
}
十分感谢,我自己找了很久没找到

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧