|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Gacy 于 2021-6-6 13:15 编辑
已知一个顺序表中的各结点值是从小到大有序的,设计一个算法,插入一个值为x的结点,使顺序表中的结点仍然是从小到大有序
用C语言
#include <stdio.h>
#include <stdlib.h>
/********************************/
/*顺序表的头文件,文件名sequlist.h*/
/********************************/
#define MAXSIZE 100
typedef int datatype;
typedef struct {
datatype a[MAXSIZE];
int size;
}sequence_list;
/**************************************************/
/* 函数功能:顺序表的初始化-置空表 */
/* 函数参数:指向sequence_list型变量的指针变量slt */
/* 函数返回值:空 */
/* 文件名:sequlist.c, 函数名:init() */
/***************************************************/
void init(sequence_list *slt)
{
slt->size = 0;
}
/***************************************************/
/* 函数功能:在顺序表后部进行插入操作 */
/* 函数参数:指向sequence_list型变量的指针变量slt */
/* datatype类型的变量x */
/* 函数返回值:空 */
/* 文件名:seqlappe.c, 函数名:append() */
/***************************************************/
void append(sequence_list *slt, datatype x)
{
if (slt->size == MAXSIZE)
{
printf("顺序表是满的!"); exit(1);
}
slt->a[slt->size] = x;
slt->size = slt->size + 1;
}
/***************************************************/
/* 函数功能:打印顺序表的各结点值 */
/* 函数参数:sequence_list型变量slt */
/* 函数返回值:空 */
/* 文件名:sequlist.c, 函数名:display() */
/***************************************************/
void display(sequence_list slt)
{
int i;
if (!slt.size) printf("\n顺序表是空的!");
else
for (i = 0; i < slt.size; i++) printf("%5d", slt.a[i]);
}
void orderinsert(sequence_list *slt, datatype x) /*将本函数补充完整*/
{
}
int main()
{
sequence_list L;
datatype y;
int j, n;
init(&L);
/*建表*/
printf("请输入顺序表的结点个数:"); scanf("%d", &n);
printf("请输入顺序表的结点值:");
for (j = 1; j <= n; j++)
{
scanf("%d", &y); append(&L, y);
}
display(L);
/*在此处完成对orderinsert函数的调用,并进行测试*/
}[/code] |
|