王道数据结构代码实践----顺序表静态存储(C语言版)

王道数据结构代码实践----顺序表静态存储(C语言版)

前言

日期:2021年8月25日
书籍:王道2021年数据结构考研复习指导
代码内容:实现顺序表的静态存储,包括初始化,插入新元素,删除新元素,输出,查询

代码难点

1. C语言没有bool数据类型

老生常谈了,C语言没有直接定义好的bool类型,不过我们可以自己宏定义一个啊

#define bool char
#define false 0
#define true 1

2.顺序表的位序从1开始,而数组的位序从0开始

这是最让我觉得生草的地方,写代码中间弄错了好几次,最终代码里每个i代表什么意思我都已经标好了,一会儿之间看源代码吧

3.getchar()和scanf()函数之差

这还是个问题,我还没解决,现在先说现象,等明白了回来补

    int a;
    while (1)
    {
   
        text();
        scanf("%d",&a);
        // a = getchar();
        switch (a)
        {
   
        ......
        }

这里,使用scanf()可以正常输入整型变量,并被switch正常识别,我记得我以前用字母作为输入时,switch抽过风,所以一开始我选择用的getchar(),然后,C99教我做了人,对,我又用回scanf了,具体原因我还没懂,等我懂了再说吧。

源代码

废话不多说了,直接上源代码

//静态分配顺序表

#include <stdio.h>
#include <stdlib.h>
//C语言自定义bool操作
#define bool char
#define false 0
#define true 1

/*数组长度及顺序表的初始化长度*/
#define MAX_SIZE 10

/*数据元素类型*/
typedef int ElemType;

/*顺序表结构定义*/
typedef struct 
{
   
    ElemType data[MAX_SIZE];    //顺序表的元素
    int length;                 //顺序表的当前长度
}SqList;                        //顺序表的类型定义

//基本操作----初始化一个顺序表
void InitList(SqList *L)
{
   
    for(int i = 0 ; i < MAX_SIZE ; i++)
        L->data[i] = 0;
    L->length = 0;
}

//基本操作----插入操作
/*
    在顺序表L的第i(1<=i<=L.length+1)个位置插入新元素e
  
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值