数据结构C语言学习(1)

此博客为个人的学习记录,如有问题欢迎讨论 


线性表

线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列

线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾指针指向了首位结点)。

线性表的特征

1.集合中必存在唯一的一个“第一元素”。

2.集合中必存在唯一的一个 “最后元素” 。

3.除最后一个元素之外,均有唯一的后继(后件)。

4.除第一个元素之外,均有唯一的前驱(前件)。

优点

线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。

函数接口定义

 三个基本函数实现

locateElement

int locateElement(SequentialListPtr paraListPtr, int paraValue) 
{
    for (int i = 0; i < paraListPtr->actualLength; i++) 
        if (paraListPtr->data[i] == paraValue) 
            return i;
}

getElement

int getElement(SequentialListPtr paraListPtr, int paraPosition) {
    if (paraPosition < 0) {
        printf("错误位置: %d.\r\n", paraPosition);
        return -1;
    }//检查位置
    if (paraPosition >= paraListPtr->actualLength) {
        printf("无法插入目标位置,因为该位置: %d 超出了线性表的位置 %d.\r\n", paraPosition, paraListPtr->actualLength);
        return -1;
    }

    return paraListPtr->data[paraPosition];
}

clearlist

void clearList(SequentialListPtr paraListPtr) {
    paraListPtr->actualLength = 0;
}//删除数据释放内存

运行结果

初始化的线性表为: 3 5 2 7 4
在首位插入后: 8 3 5 2 7 4
在尾部插入后: 8 3 5 2 7 4 9
在尾部之外插入
不能插入:位置 8 大于线性表长度 7.
线性表为:8 3 5 2 7 4 9
插入 10.
10 8 3 5 2 7 4 9
插入 11.
11 10 8 3 5 2 7 4 9
插入 12.
12 11 10 8 3 5 2 7 4 9
插入 13.
空间不够,不能插入数据

学习总结

1.线性表的定义

线性表:具有相同特性的数据结构的元素组成的有限序列;
线性表长度:序列中的元素个数,用(n >= 0)表示,n可以为0,表示为空表;
2.线性表的逻辑特性
线性表只有一个表头元素和表尾元素,表头元素没有前驱,表尾元素没有后继,其余元素都只有一个直接前驱和一个直接后继。

3.线性表的存储结构
线性表的存储结构有顺序存储和链式存储两种,即顺序表和链表。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值