用c语言实现采用顺序存储结构,完成顺序表的创建,实现对顺序表的直接插入排序、冒泡排序。
时间: 2024-02-24 18:00:30 浏览: 87
好的,我将为您解答这个问题。首先,我们需要了解顺序表的概念。顺序表是一种线性表,它采用数组来存储元素,因此具有随机访问的特点。顺序表的创建需要先确定元素类型和数组长度,然后再动态分配数组空间。下面是用C语言实现顺序表创建的代码:
```c
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct
{
int data[MAXSIZE]; // 用数组存储元素
int length; // 当前长度
}SqList;
void InitList(SqList *L) // 初始化顺序表
{
L->length = 0;
}
void CreateList(SqList *L) // 创建顺序表
{
int i;
printf("请输入顺序表的长度:");
scanf("%d", &L->length);
printf("请输入%d个元素的值:", L->length);
for(i=0; i<L->length; i++)
{
scanf("%d", &L->data[i]);
}
}
void DispList(SqList L) // 输出顺序表
{
int i;
printf("顺序表中的元素为:");
for(i=0; i<L.length; i++)
{
printf("%d ", L.data[i]);
}
printf("\n");
}
```
接下来是直接插入排序的代码实现:
```c
void InsertSort(SqList *L) // 直接插入排序
{
int i, j, tmp;
for(i=1; i<L->length; i++)
{
if(L->data[i] < L->data[i-1])
{
tmp = L->data[i];
for(j=i-1; j>=0 && L->data[j]>tmp; j--)
{
L->data[j+1] = L->data[j];
}
L->data[j+1] = tmp;
}
}
}
```
最后是冒泡排序的代码实现:
```c
void BubbleSort(SqList *L) // 冒泡排序
{
int i, j, tmp;
for(i=0; i<L->length-1; i++)
{
for(j=0; j<L->length-i-1; j++)
{
if(L->data[j] > L->data[j+1])
{
tmp = L->data[j];
L->data[j] = L->data[j+1];
L->data[j+1] = tmp;
}
}
}
}
```
以上就是用C语言实现顺序表的创建、直接插入排序和冒泡排序的代码。希望能帮到您!
阅读全文