数据结构之有序表的实现(c语言)

有序表的建立、插入与删除

一、目的

1 了解有序表的顺序存储结构。
2 掌握有序表元素在内存中是怎样存储的。
3 在有序表中实现如下操作:
(1)插入一个新元素到第i个位置,使原来标号为增1;
(2)删除第i个位置的元素;
(3)存一个新元素到第i个位置;
(4)读表;
(5)检索表中第i个元素;
(6)寻表的长度。

二、原理

线性表是最常用的而且也是最简单的一种数据结构,线性表是N个数据元素的有限序列。例如26个英文元素的字母表:(A,B,C,D…)。其数据结构的描述为:Linear_list=(D,R)其中:D={ai|ai属于D0,i=1,2,3,···}R={N},N={<ai-1,ai>|i=2,3,4,···}。本实验是以数组的形式把有序表存放在计算机内存的一个连续的区域内,这样便有:LOC(ai+1)=LOC(ai)+m。其中m是存放每个元素所占的内存字数。LOC(ai)=LO+m·(i-1)。其中LO是ai的地址,即首地址。
实验程序说明:
插入一个新元素到第i个位置,既把元素ai向后移一个位置,成为元素ai+1,把新元素放入到第i个位置,其他元素依次后移。
存一新元素到第i个位置是把元素ai冲掉后存上新值。
删除第i个元素就是把余后的元素依次向前移一个位置。即:以元素ai+1,ai+2,……,依次取代ai,ai+1……。删除后的表长是n-1(n是原表长)。

三、程序流程图

在这里插入图片描述

四、程序示例
#include<stdio.h>
#include<stdlib.h>
#define maxn 100

int a[maxn];
int array_Length; //用户所定义的线性表长度
int op; //定义操作数
int p; //操作位置
bool is_OK=false;
bool is_Flag=true; //主循环结束标志

void show_Welcome(); //欢迎语句
void init_Array(); //初始化线性表
void show_Menu(); //功能菜单
void insert(); //线性表插入操作
void _delete(); //线性表删除操作
void get_NewNumber(); //线性表读新值操作
void show(); //打印表中元素
void search(); //检索表中元素
void get_ListLength(); //获取表长
void pause(); //用于程序暂停,便于查看输出结果
bool is_Check(int length); //检查是否超出表长

int main()
{
   
    show_Welcome();
    init_Array()
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值