有一个存放整数的长度为m+n的线性表L,其前m个元素单调递增,后n个元素也单调递增。设计一个算法,使得整个线性表的元素单调递增。要求:使用链式存储实现。
2条回答 默认 最新
CSDN专家-link 2022-03-27 17:00关注不是问过了么〉。。。。。。
#include <iostream> using namespace std; typedef struct _sqlist { int data[1000]; int length; }sqlist; void create(sqlist *s,int m,int n) { int i=0; printf("请输入%d个递增数:\n",m); for(i=0;i<m;i++) scanf("%d",&s->data[i]); printf("请输入%d个递增数:\n",n); for(i=0;i<n;i++) scanf("%d",&s->data[i+m]); s->length = m+n; } void sorts(sqlist *s,int m,int n) { int i,j,k,t; for(i=m;i<s->length;i++) { t = s->data[i]; for(j=0;j<i;j++) { if(s->data[j] >= s->data[i]) { for(k=i;k>j;k--) s->data[k] = s->data[k-1]; s->data[j] = t; break; } } } } void print(sqlist *s) { int i=0; for(i=0;i<s->length;i++) printf("%d ",s->data[i]); } int main() { sqlist s; int m,n; printf("请输入两个递增序列的数量:\n"); scanf("%d%d",&m,&n); create(&s,m,n); sorts(&s,m,n); print(&s); return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用 1