-
题目要求:设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。
-
代码实现:
void Insert(SqList *va,int x) { int i; if(va->length+1>MAXSIZE) { printf("存储空间已满"); return; } for(i=va->length-1;va->data[i]>x&&i>=0;i--) { va->data[i+1]=va->data[i]; } va->data[i+1]=x; va->length++; }
-
完整程序:
#include<stdio.h> #define MAXSIZE 100 typedef struct { int data[MAXSIZE]; int length; }SqList; void Insert(SqList *va,int x) { int i; if(va->length+1>MAXSIZE) { printf("存储空间已满"); return; } for(i=va->length-1;va->data[i]>x&&i>=0;i--) { va->data[i+1]=va->data[i]; } va->data[i+1]=x; va->length++; } int main() { int m,x; SqList va; printf("请输入线性表元素个数m:"); scanf("%d",&m); printf("请输入线性表数据:"); for(int i=0;i<m;i++) scanf("%d",&va.data[i]); va.length=m; printf("请输入要插入的元素x:"); scanf("%d",&x); Insert(&va,x); printf("插入x后的新线性表为:"); for(int t=0;t<va.length;t++) printf("%d ",va.data[t]); }
-
运行结果:
请输入线性表元素个数m:4 请输入线性表数据:1 5 9 16 请输入要插入的元素x:7 插入x后的新线性表为:1 5 7 9 16
-----------------------------------分割线-----------------------------------
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!
对抗一下内容审查,超过十个字的句子不够10行,拿这个凑!