数据结构——顺序表合并(C语言实现)

编程入门 行业动态 更新时间:2024-10-04 11:24:39

<a href=https://www.elefans.com/category/jswz/34/1769880.html style=数据结构——顺序表合并(C语言实现)"/>

数据结构——顺序表合并(C语言实现)

好久没来写博客了,最近开学社团的事情比较忙,然后之后的博客可能写数据结构和算法方面的比较多。
————————————————假装自己是分割线——————————————————
这里是将有序(从小到大)顺序表A,B 合并为一个有序(由小到大)顺序表C

#define MAXSIZE 100
#include<stdio.h>// 定义数据结构,size为顺序表实际元素个数
typedef struct {int m[MAXSIZE];int size;
}list;//创建
void creat(list *s)
{int n, len;printf("输入顺序表的长度:");scanf("%d", &len);s->size = len;printf("输入顺序表的元素:");for (int i = 0; i < len; i++){scanf("%d", &n);s->m[i] = n;}
}//输出
void print(list *s)
{for (int i = 0; i < s->size; i++)printf("%d ", s->m[i]);printf("\n");
}//合并
void combine(list *a, list *b, list *c)  
{int i=0, j=0, k=0; //同时扫描两个表 while(i<a->size && j<b->size) {if(a->m[i]<=b->m[j]) {c->m[k] = a->m[i]; i++;         k++;         }else{c->m[k] = b->m[j];j++;            k++;         }}//A表扫完,B组未扫完 if(i==a->size)         {for(; j<b->size; j++){c->m[k] = b->m[j];k++; }        }if(j==b->size)              {for(; i<a->size; i++){c->m[k] = a->m[i];k++; }    }c->size=k;
}int main()
{list a;list b;list c;creat(&a);creat(&b);print(&a);print(&b);combine(&a,&b,&c);print(&c);
}

更多推荐

数据结构——顺序表合并(C语言实现)

本文发布于:2024-02-28 12:00:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1769513.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据结构   顺序   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!