鱼C论坛

 找回密码
 立即注册
查看: 2585|回复: 1

不会写数据结构线性表

[复制链接]
发表于 2021-6-6 13:08:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-11 13:59:41 | 显示全部楼层
我用C++模板实现了一些线性表,git路径:https://github.com/zqgs/CppAdvanced/tree/main/AbstractDataType 欢迎交流
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 14:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表