顺序表的简单实现--完整版

#include<stdio.h>

#include<stdlib.h>

 

#define MAXLength 10

typedef int ElemType;

 

typedef struct

{

    int data[MAXLength];

    int length; //当前的长度

}Sqlist;

 

 

void Init(Sqlist *l)

{

    l->length = 0;//初始化长度为0

    //l->data[0] = NULL;

    printf("\t**顺序表初始化完成**\n\n");

}

 

void  Create(Sqlist *l)

{

    int Length;

    //int count = 0;//计数器

    int x;

 

    printf("请输入要创建的顺序表的长度:");

    scanf("%d", &Length);

    while (1)

    {

        if (Length > MAXLength)

        {

            printf("表长度超限,请重新输入表长度:");

            scanf("%d", &Length);

            //system("pause");

            //exit(1);

        }

        if (Length <= 0)

        {

            printf("表长度不能小于等于0,请重新输入表长度:");

            scanf("%d", &Length);

        }

        if (Length > 0&& Length < MAXLength)

        {

 

            if (Length > 0&& Length <= MAXLength)

            {

 

                for (int i = 0; i <=Length - 1; i++)

                {

                    printf("请输入第%d个结点数据:", i + 1);

                    scanf("%d", &x);

                    l->data[i] = x;

                }

                l->length =Length;

                printf("顺序表创建完成!!\n\n");

            }

            break;

            //system("pause");

            //exit(1);

        }

 

    }

 

 

}

 

void GetHead(Sqlist *l)

{

    if (l->length <= 0)

    {

        printf("表为空!!\n");

    }

    else

    {

        printf("表头元素:%d\n", l->data[0]);

    }

}

 

void GetLength(Sqlist *l)

{

    printf("顺序表长为:%d", l->length);

}

 

void Display(Sqlist *l)

{

    if (l->length > 0&& l->length <= MAXLength)

    {

        printf("表中元素:\n");

        for (int i = 0; i < l->length; i++)

        {

            printf("%d \n", l->data[i]);

 

        }

    }

    else

    {

        printf("表长有误!!");

        exit(1);

    }

 

    printf("========\n");

}

 

 

void main()

{

    int flag;

    Sqlist l;

 

    printf("\t1:初始化\n");

    printf("\t2:创建\n");

    printf("\t3:打印\n");

    printf("\t4:表长\n");

    printf("\t5:表头\n");

    printf("\t0:退出\n");

    printf("请输入相应指令操作顺序表:\n");

    scanf("%d", &flag);

 

    while (1)

    {

        switch (flag)

        {

        case 1:Init(&l);

            break;

        case 2:Create(&l);

            break;

        case 3:Display(&l);

            break;

        case4:GetLength(&l);

            break;

        case 5:GetHead(&l);

            break;

        case 0:exit(1);

            break;

        default:printf("指令有误!!\n");

            //scanf("%d",&flag);

            break;

        }

        printf("请输入相应指令操作顺序表:\n");

        scanf("%d", &flag);

    }

    system("pause");

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值