永发信息网

线性表的基本操作 求C或C++代码 和运行结果截图

答案:1  悬赏:0  手机版
解决时间 2021-01-23 07:31
线性表的基本操作 求C或C++代码 和运行结果截图
最佳答案
#include #include #define Max 100 // 定义数组的最大长度 typedef int Datatype; // 定义数组元素的数据类型 typedef struct { Datatype data[Max]; // data数组用于开辟一段连续的存储空间 int length; // 当前长度 }SqList; SqList *InitList(int n,int coe) { int i; SqList *L; L = (SqList *)malloc(sizeof(SqList)); L->length = n; for(i = 0; i < n; ++i) L->data[i] = i * coe; return L; } int InsertList(SqList *L,Datatype x) { int i,j; if (L->length >= Max) { printf("overflow!\n"); return 0; } for (i = 0;i < L->length;i++) { if(x <= L->data[i]) { for(j = L->length;j >= i;j--) L->data[j + 1] = L->data[j]; // 结点后移 L->data[i] = x; L->length++; return 1; } } L->data[L->length++] = x; return 1; } int RemoveListElem(SqList *L,Datatype d) { int i,j; for(i = 0; i < L->length; ++i) { if(L->data[i] == d) { for(j = i; j < L->length - 1; ++j) L->data[j] = L->data[j + 1]; L->length--; return 1; } } return 0; } SqList *AndList(SqList *A, SqList *B) { int i,j,k = 0; SqList *C = InitList(A->length + B->length,0); for(i = 0; i < A->length; ++i) { for(j = 0; j < B->length; ++j) { if(A->data[i] == B->data[j]) C->data[k++] = A->data[i]; } } C->length = k; return C; } SqList *OrList(SqList *A, SqList *B) { int i,j,flag; Datatype e; SqList *C = InitList(A->length + B->length,0); C->length = A->length; for(i = 0; i < A->length; ++i) C->data[i] = A->data[i]; for(i = 0; i < B->length; ++i) { e = B->data[i]; flag = 1; for(j = 0; j < C->length; ++j) { if(e == C->data[j]) { flag = 0; break; } } if(flag) InsertList(C,e); } return C; } void PrintList(SqList *L) { int i; for(i = 0; i < L->length; ++i) printf("%d ",L->data[i]); printf("\n"); } void main() { SqList *A = InitList(10,3); SqList *B = InitList(10,2); SqList *C = AndList(A,B); SqList *D = OrList(A,B); Datatype x; printf("A线性表为:\n"); PrintList(A); printf("B线性表为:\n"); PrintList(B); printf("C线性表为:\n"); PrintList(C); printf("D线性表为:\n"); PrintList(D); printf("在D表中插入数据 : "); scanf("%d",&x); InsertList(D,x); printf("D表插入x后 :"); PrintList(D); printf("删除D表中数据 : "); scanf("%d",&x); RemoveListElem(D,x); printf("删除x后的D表为 :"); PrintList(D); free(A); free(B); free(C); free(D); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
括号中应填哪个选项?64,48,40,36,34,A.
天地通丧葬服务行(永善县客运站点建设指挥部
火车托运行李的尺寸?
类似飘飘的游戏
巧家县殡仪馆地址好找么,我有些事要过去,
五月天组合共有几个人?
1956日本申请加入联合国苏联做了什么
将正整数从1开始依次按如图所示的规律排成一
天地通丧葬服务行(永善县教育局西北)地址在什
常用计数器74161
a^2减去4a^2加上48<0求a的取值范围
昭阳区殡仪馆地址在什么地方,我要处理点事!
单选题一位美国历史学家在谈到一战前欧洲形势
池陌的第一神算百度云
丧葬服务部(云南省昭通市盐津县麻水线)地址在
推荐资讯
马克西姆地址在哪,我要去那里办事,
读写任务(共1小题,满分25分)阅读下面的短文
博讯通地址有知道的么?有点事想过去!
powerdesigner16怎么连接到sqlserver导出表结
单选题下列各种材料属于有机合成材料的是A.用
时代发艺地址在什么地方,想过去办事
三村小学(苏州吴江)怎么去啊,我要去那办事
正泰集团(庆云总代理)地址在什么地方,我要处
完形填空LastFridaymybrotherandIweredrivi
鼎城区双桥坪镇联校地址在哪,我要去那里办事
鸡胗在猪身上叫什么?
丽云旅馆(秦皇岛北戴河区)地址在什么地方,我
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?