定义并初始化一个空int型顺序表,输入一个无序序列,实现顺序表的插入操作,并分别用直接插入法和直接选择法对上述序列排序
运行结果如下:
代码:
#include <stdio.h>
#define MAXLEN 100
struct StList
{
int data[MAXLEN];
int len;
};
//初始化空表
void InitList(StList* head)
{
head->len = 0;
}
//递增插入数据
void InsertData(StList* head,int v)
{
int i,j;
if(head->len == 0)
{
head->data[head->len] = v;
head->len += 1;
return;
}
if(v > head->data[head->len-1])
{
head->data[head->len] = v;
head->len += 1;
return;
}
for(i=0;i<head->len;i++)
{
if(head->data[i] >= v)
{
for(j=head->len;j>i;j--)
head->data[j] = head->data[j-1];
head->data[i] = v;
head->len += 1;
return;
}
}
}
//显示
void show(StList head)
{
int i;
for(i=0;i<head.len;i++)
printf("%d ",head.data[i]);
printf("\n");
}
int main()
{
int i,v;
StList head;
InitList(&head);
printf("请输入10个整数:");
for (i=0;i<10;i++)
{
scanf("%d",&v);
InsertData(&head,v);
}
//显示
printf("链表数据:");
show(head);
return 0;
}
就是数组进行直接插入法和直接选择法排序呗