设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性
2015-05-09 22:00
429 查看
设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性
先建立一个待插入的结点,然后依次与与链表中的各结点的数据域比较大小,找到插入该结点的位置,最后插入该结点。
算法如下:
先建立一个待插入的结点,然后依次与与链表中的各结点的数据域比较大小,找到插入该结点的位置,最后插入该结点。
算法如下:
#include<stdio.h> #include<stdlib.h> #define MAXSIZE 20 #define OK 1 #define ERROR 0 typedef int ElemType; typedef int Status; typedef struct { ElemType data[MAXSIZE]; int Length; }SqList; Status InitList(SqList * L) //初始化线性表 { L->Length=0; return OK; } SqList Create(SqList * L,ElemType Number) { int StartNumber,Step; printf("请输入初始值和步长:\n"); scanf("%d%d",&StartNumber,&Step); for(int i=0;i<Number;i++) { L->data[i]=StartNumber+(i)*Step; } L->Length=Number; return *L; } void print(SqList *L) { for(int i=0;i<L->Length-1;i++) { printf("%d ,",L->data[i]); } printf("%d",L->data[L->Length-1]); printf("\n"); } //判断插入位置 Status Locate(SqList *L,ElemType e) { if(e<L->data[0]) { return 0; } if(e>L->data[L->Length-1]) { return L->Length; } else { for(int i=0;i<L->Length;i++) { if(e>=L->data[i] && e<L->data[i+1]) { return i+1; } } } } //插入 Status InorderList(SqList *L,ElemType Location,ElemType e) { for(int i=L->Length-1;i>=Location;i--) { L->data[i+1]=L->data[i]; } L->data[Location]=e; L->Length++; return OK; } int main() { SqList L; InitList(&L); int Number; printf("输入顺序表的元素个数:\n"); scanf("%d",&Number); Create(&L,Number); print(&L); printf("请输入插入的元素:\n"); int InputNumber; scanf("%d",&InputNumber); int Location=Locate(&L,InputNumber); InorderList(&L, Location,InputNumber); print(&L); return 0; }
相关文章推荐
- 数据结构 2-11设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。
- 设顺序表a中的数据元素递增有序,试设计一个算法,将x插入到顺序表的适当位置,以保持该表的有序性。
- 已知顺序表L递增有序,写一算法,将X插入到线性表的适当位置,以保持线性表的有序
- 已知顺序表L递增有序,写一算法,将X插入到线性表的适当位置,以保持线性表的有序
- 已知顺序表L递增有序,写一算法,将X插入到线性表的适当位置,以保持线性表的有序
- 将x插入到顺序表中保持顺序表的递增有序
- 从键盘读入n个整数(升序),请编写算法实现: 建立带表头结点的单链表; 显示单链表,(形如:H->10->20->30->40); 在有序单链表中插入新的数据元素x; 将单链表就地逆
- 设顺序表 S 中元素递增有序,编写算法删除 S 所有大于 k1 且小于 k2 的元素
- 在非递减的有序单链表中插入一个值为x的数据元素,并使单链表仍保持有序的操作
- 在一个递增有序链表中插入新结点并保持链表递增顺序不变
- 往一递增有序的顺序表中插入x,仍保持气有序性
- 简单顺序表的插入,删除,指定位置,指定元素的插入删除操作
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用4-2:元素位置互换之逆置算法(数据改进)
- 顺序表应用3:元素位置互换之移位算法
- C语言:【动态顺序表】动态顺序表的在指定位置插入元素Insert,以及指定元素Find
- 顺序表应用4-2:元素位置互换之逆置算法(数据改进)
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 第十四周项目一数组大折腾(5)创建一个长度为16的整形数组a并初始化前15个元素,输入一个整数b,将b插入到a[0]位置(原有的数据往后“移动”)