设顺序表va中的数据元数递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。
typedef struct{ int data[MAXSIZE]; int length; }SqList; void Test(SqList **va,int x){ SqList *p=va; for (int i = 0; i < p->length; ++i) { if(p->data[i]>=x){ for (int j = p->length; j >i; j--) { p->data[j]=p->data[j-1] } p->data[i]=x; break; } } }
void Insert_sq(Sqlist *va, ElemType x){ int i, j; 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 ListInsert(Sqlist &L, int x)
{
int i;
for(i=0;i<l.length;i++)
if(i->data>x)
return false
for(j=l.length;j>=i+1;j++)
l.data[j]=l.data[j-1]
l.data[i]=e;
l.length++;
}
void Insert( SeqList *va,int x)
int i=0;
while(i<va->n-1&&va->data[i]<x) i++;
for(j=n-1;j>=i;j--)
va->data[j+1]=va->data[j];
va->data[i] = x;
va->n++;
woaixinzhou 回复 woaixinzhou: SqList va
int insert(SqList a[],int p){
int i,temp,n;
n=length(a);
a[n]=p;
for(i=n;i<0;i--){
if(a[i]<a[i-1]){
temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
}else
break;
N诺的题有很多问题,va[i]=x;应该写在for循坏外
void InX(Sqlist &va int n)
int x=n;
if(x>va.elem[va.length]) va.elem[va.length+1]=x;
else
while(x<va.elem[i])
i++;
for(int j=va.length;j<=i;j--)
va.elem[j+1]=va.elem[j];
va.elem[i]=x;
va.length++;
void Insert_sq(Sqlist va[], ElemType x){ int i, j, n; n=length(va[]); if(x>=va[n-1]) va[n]=x; else{ i=0; while(x>va[i]) i++; for(j=n-1;j>=I;j--) va[j+1]=va[j]; va[i]=x; } n++; }
insert(Sqlist* va,int x){
i=0;
while(i<va->length&&va.data[i]<x){
while(i<va->length+1){
int tem=va->data[i];
va->data[i]=x;
length++;
void insertSorted(int arr[], int size, int x) { int i = size - 1; // 寻找插入位置 while (i >= 0 && arr[i] > x) { arr[i + 1] = arr[i]; i--; } // 插入元素 arr[i + 1] = x; }
void sort_insert(sqlist &va , int x)
int temp = 0;
while(x > va->data[temp]) temp++;
for(int i = va->length-1;i>=temp;i--) va->data[i+1] = va->data[i];
va->data[temp] = x;
va->length++;
#include <stdio.h>
void insert(int a[],int n,int num)
for(int i=0;i<=n;i++)
if(a[i]>=num)
for(int j=n+1;j>=i;j--)
a[j]=a[j-1];
a[i]=num;
int main ( )
int a[20],n,num;
printf("请输入小于20个的数组元素个数:\n");
scanf("%d",&n);
printf("请输入%d个元素,以空格隔开:\n",n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("请输入要插入的元素:\n");
scanf("%d",&num);
insert(a,n,num);
for(int i=0;i<n+1;i++)
printf("%d ",a[i]);
return 0;
#include<stdio.h> //成功返回插入的位置,失败返回-1 int Insert(int va[],int n,int x){ int i,j; for(i=0;i<n;i++){ if(x<va[i]){ for(j=n;j>i;j--) va[j]=va[j-1]; va[j]=x; return j; } } return 0; } int main(){ int va[20],len=10; for(int i=0;i<len;i++) va[i]=i; double n; scanf("%lf",&n); int pos=Insert(va,len++,n); if(pos==-1) printf("失败\n"); else printf("插入的位置处于%d\n",pos); return 0; }
void insertSq(SqList va[],ElemType e){ len=length(va[]); va[len+1]=e; while(va[len]>e){ va[len+1]=va[len]; va[len]=e; len--; }
lll
void insert(List va[], Ele x) { int temp; int n = length(va[]); for (int i = 0; i < n; i++) { if (x < va[i]) break; } for (int j = n; j > i; j--) va[j] = va[j - 1]; va[j] = x; }
答案:
void Inser...
用户登录可进行刷题及查看答案
void Insert_sq(Sqlist va[], ElemType x)
{int i, j, n;
n=length(va[]);
if(x>=va[n-1])
va[n]=x;
{i=0;
while(x>va[i]) i++;
for(j=n-1;j>=I;j--)
va[j+1]=va[j];
va[i]=x; }
n++;
登录后提交答案