设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。 设顺序表va中的数据元素递增有序。如何写一算法,将x插入到顺...

作者&投稿:祢聂 (若有异议请与网页底部的电邮联系)

#include <stdio.h>

// a 顺序表  x 将要插入值  len 顺序表长度

// 返回值为表a的新长度

int insert(int x, int * a, int len)

{

printf("%3d ins ", x); // 这句为了演示用,显示插入的数值

int l, r, m;

// 查找插入位置

l = -1;

r = len;

m = (l + r) / 2;

while(r - l > 1)

{

if(a[m] < x) l = m;

else r = m;

m = l + (r - l) / 2;

}

if(r == len) a[r] = x;

else

{

for(l = len; l > r; l--) a[l] = a[l-1];

a[l] = x;

}

return ++len;

}

void print(int *a, int l)

{

int i;

for(i=0; i<l; i++) printf("%4d", a[i]);

printf("
");

}

void main()

{

int a[20] = {1,2,3,4,5,6,7,8,9,10,0,0,0,0,0,0,0,0,0,0};

int len = 10;

print(a, len);

len = insert(20, a, len);

print(a, len);

len = insert(11, a, len);

print(a, len);

len = insert(10, a, len);

print(a, len);

len = insert(-1, a, len);

print(a, len);

len = insert(0, a, len);

print(a, len);

len = insert(1, a, len);

print(a, len);

len = insert(2, a, len);

print(a, len);

len = insert(55, a, len);

print(a, len);

}



设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。
void inList(SqlList L,int x){
if(L.length>=L.listsize)

newbase=(ElemType *)realloc(L.elem,
(L.listsize+LISTINCREMENT)*sizeof(ElemType));

if(!newbase)exit(OVERFLOW);

L.elem=newbase;

L.listsize+=LISTINCREMENT;

for(i=1;i<=L.length;i++){

if(x<=L.elem[i]){
for(q=L.length;q>=i;q++)L.elem[q+1]=L.elem[q];
L.elem[i]=x;
break;
}
else {L.elem[L.length+1]=x;break;}
}
L.length++;
}

设顺序表中a中的数据元素递增有序,试写一算法将x插入到顺序表的适当位置,以保持该表的有序性。C语言版~

#include // a 顺序表 x 将要插入值 len 顺序表长度// 返回值为表a的新长度int insert(int x, int * a, int len){printf("%3d ins ", x); // 这句为了演示用,显示插入的数值int l, r, m;// 查找插入位置l = -1;r = len;m = (l + r) / 2;while(r - l > 1){if(a[m] r; l--) a[l] = a[l-1];a[l] = x;}return ++len;}void print(int *a, int l){int i;for(i=0; i<l; i++) printf("%4d", a[i]);printf("
");}void main(){int a[20] = {1,2,3,4,5,6,7,8,9,10,0,0,0,0,0,0,0,0,0,0};int len = 10;print(a, len);len = insert(20, a, len);print(a, len);len = insert(11, a, len);print(a, len);len = insert(10, a, len);print(a, len);len = insert(-1, a, len);print(a, len);len = insert(0, a, len);print(a, len);len = insert(1, a, len);print(a, len);len = insert(2, a, len);print(a, len);len = insert(55, a, len);print(a, len);}

#include
// a 顺序表 x 将要插入值 len 顺序表长度
// 返回值为表a的新长度
int insert(int x, int * a, int len)
{
printf("%3d ins ", x); // 这句为了演示用,显示插入的数值
int l, r, m;
// 查找插入位置
l = -1;
r = len;
m = (l + r) / 2;
while(r - l > 1)
{
if(a[m] < x) l = m;
else r = m;
m = l + (r - l) / 2;
}
if(r == len) a[r] = x;
else
{
for(l = len; l > r; l--) a[l] = a[l-1];
a[l] = x;
}
return ++len;
}
void print(int *a, int l)
{
int i;
for(i=0; i<l; i++) printf("%4d", a[i]);
printf("
");
}
void main()
{
int a[20] = {1,2,3,4,5,6,7,8,9,10,0,0,0,0,0,0,0,0,0,0};
int len = 10;
print(a, len);
len = insert(20, a, len);
print(a, len);
len = insert(11, a, len);
print(a, len);
len = insert(10, a, len);
print(a, len);
len = insert(-1, a, len);
print(a, len);
len = insert(0, a, len);
print(a, len);
len = insert(1, a, len);
print(a, len);
len = insert(2, a, len);
print(a, len);
len = insert(55, a, len);
print(a, len);
}
顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。
将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构。
采用顺序存储结构的线性表简称为“ 顺序表”。顺序表的存储特点是:只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L  1≤i≤n 其中,L是元素占用存储单元的长度。
顺序表的结构定义:
#define maxlen 50 //定义顺序表中元素个数最多有几个
typedef struct
{
elementtype data[maxlen]; //elementtype是元素的类型 依具体情况而定
int listlen; //便于时刻了解顺序表里元素的个数
}seqlist; //顺序表的名称 不妨为seqlist
声明顺序表类型变量:
seqlist L,L1;
如顺序表的每个结点占用len个内存单元,用location (ki)表示顺序表中第i个结点ki所占内存空间的第1个单元的地址。则有如下的关系:location (ki+1) = location (ki) +len
location (ki) = location(k1) + (i-1)len
存储结构要体现数据的逻辑结构,顺序表的存储结构中,内存中物理地址相邻的结点一定具有顺序表中的逻辑关系。

设顺序表va中的数据元素递增有序。试写一个算法,将x 插入到顺序表的适当...
答:【答案】:struct node intdata; struct node *next; voidinsert(struct node *head,int x)//链表的插入函数 structnode head;struct node (structnode *)malloc(sizeof(struct node)); r->data

设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当...
答:设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。void inList(SqlList L,int x){if(L.length>=L.listsize) newbase=(ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase)exit(OVERFLOW); L.elem=newbase; L.lis...

设顺序表VA中的数据元素递增有序。写一算法,将X插入到表的适当位置,从...
答:建立有序链表//再输入要插入的元素,调用函数插入//输出最终链表#include <stdio.h>#include <stdlib.h>struct node{ int data; struct node *next;};void insert(struct node *head,int x)//链表的插入函数{ struct node *p = head->next,*q ...

设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当...
答:如顺序表的每个结点占用len个内存单元,用location (ki)表示顺序表中第i个结点ki所占内存空间的第1个单元的地址。则有如下的关系:location (ki+1) = location (ki) +len location (ki) = location(k1) + (i-1)len 存储结构要体现数据的逻辑结构,顺序表的存储结构中,内存中物理地址相邻的结点...

设顺序表VA中的数据元素递增有序。试写一算法。将X插到顺序表的适当位置...
答:int key;};typedef struct record RECORD;void insertsort(RECORD num[],int n){ int i,j;for(i=0; i<n;i++){ for(j=i+1;j<=n;j++){ if(num[i].key>num[j].key){ int temp=0;temp=num[i].key;num[i].key=num[j].key;num[j].key=temp;} } } } void main(){ ...

设顺序表VA中的数据元素递增有序,试编写算法实现将X插入到顺序表的适当...
答:原来第9个位置的元素后移到了第10个位置上,第8个位置的元素后移到了第9个位置上,这样第8个位置就空了出来,从而可以在这个位置上插入新元素。 va.elem[i+1]=va.elem[i]的作用就是对元素进行后移,好空出位置来插入新的元素

设顺序表Va中的数据元素递增有序,试写一算法将X插入到顺序表的适当位置...
答:C/C++?还是JAVA?基本思想:从最后一个往前比较,X小则表中比较值后移一位,X放刚比较的那个位置,再循环依次网前,X大时结束。不知道是否能解决?如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

设顺序表A中的数据元素递增有序,试写一段程序,将x插入到顺序表的适当...
答:struct sqlist {int elem[maxsize] ; int length; }sqlist;Status Insert_SqList(SqList &va,int x){ if(va.length+1>maxsize) return 0;va.length++;for(i=va.length-1;va.elem[i]>x&&i>=0;i--)va.elem[i+1]=va.elem[i];va.elem[i+1]=x;return 1;} ...

一个顺序表元素值有序递增,编写算法,删除顺序表中值相同的多余...
答:遍历顺序表,后一个元素如果与前一个元素相同,就删除,go on

元素周期表按___递增的顺序给元素编号,叫原子序数.原子序数___质子数...
答:原子核外电子数、=、=、周期、族。原子序数是元素周期表按原子核外电子数递增的顺序给元素编的号,存在规律:“原子序数=核内质子数=核外电子数=核电荷数”;元素周期表中每一横行叫周期;每一纵列叫族。