實現了使用C語言完成順序表的插入,排序(冒泡排序),刪除。
#define maxSize 100
//順序表定義
typedef struct {
int data[maxSize];
int length;
}Sqlist;
int main(){
//順序表基本操作
void CreatSqlist(Sqlist *L);
void OutputSqlist(Sqlist *L);
void insertElem(Sqlist *L,int x);\
void Bubble(Sqlist *L);
Sqlist L;
CreatSqlist(&L);
Bubble(&L);
printf("輸出鏈表:\n");
OutputSqlist(&L);
insertElem(&L,10);
printf("輸出鏈表:\n");
OutputSqlist(&L);
return 0;
}
//順序表基本操作
//創建順序表
void CreatSqlist(Sqlist *L){
int i = 0;
L -> length = 0;
printf("請輸入順序表數據:\n");
for (i = 0;i < 5; i++){
scanf("%d",&L -> data[i]);
L -> length++;
}
}
//輸出順序表
void OutputSqlist(Sqlist *L){
for(int i = 0;i <L->length;i++){
printf("%d ",L -> data[i]);
}
printf("\n");
}
//順序表插入,按順序插入
int findElem(Sqlist L,int x){
int i = 0;
for (i = 0;i < L.length;i++){
if(x < L.data[i]){
return i;
}
}
return i;
}
void insertElem(Sqlist *L,int x){
int p,i;
p = findElem(*L,x);
for(i = L->length - 1;i >= p;i--){
L->data[i+1] = L->data[i];
}
L->data[p] = x;
(L->length)++;
}
//刪除元素
int deleteElem(Sqlist *L,int p,int *e){
int i;
if(p < 0 || p> L->length-1){
return 0;
}
e = L->data[p];
for(i = p;i < L->length-1;i++){
L->data[p] = L->data[p+1];
}
L->length--;
return 1;
}
//冒泡排序
void Bubble(Sqlist *L){
for(int i =0;i < L -> length-1;i++){
for(int j = 0;j < L->length - i - 1;j++){
int temp;
if(L -> data[j] > L -> data[j+1]){
temp = L -> data[j];
L -> data[j] = L -> data[j+1];
L -> data[j+1] = temp;
}
}
}
}