设一顺序表中元素值递增有序。写一算法,将元素x插到表中适当的位置,并保持顺序
怎么办?我是一个超级无敌的菜鸟……
程序代码:
#include<stdio.h> #define maxlen 50 typedef int elemtype; typedef elemtype sqlist[maxlen]; int creat(sqlist A)//创建顺序表 { int i,n; printf("创建一个顺序表:\n"); printf("输入元素个数:\n"); scanf("%d",&n); for(i=0;i<n;i++) { printf("输入第%d个元素值",i+1); scanf("%d",&A[i]); } return n; } void disp(sqlist A,int n)//输出一个顺序表 { int i; printf("输出一个顺序表:\n"); if(n==0) printf("建立的顺序表为空表:\n"); for(i=0;i<n;i++) printf("%4d",A[i]); printf("\n"); } int Insert(sqlist A,int n,int x) { int i=0,j; if(x>=A[n-1])/*插到线性表尾*/ { A[n]=x; } else { while(A[i]<x) i++; for(j=n;j>=i;j--) A[j+1]=A[j];/*后移*/ A[i]=x; } return n+1; } void main() { sqlist A; int x,n; n=creat(A); disp(A,n); printf("请输入一个要插入的数:\n"); scanf("%d",&x); n=Insert(A,n,x); disp(A,n); }
楼主可以参考一下我以前做的