数据结构之三讲--表、栈、队列

本文介绍了数据结构中的三种基本概念——链表、栈和队列。链表是一种灵活的存储结构,分为单链表和双链表,允许高效插入和删除。栈遵循“后进先出”原则,常用于存储函数参数,而队列则遵循“先进先出”原则,常见于排队系统。理解这些基本结构对于解决问题至关重要。
摘要由CSDN通过智能技术生成

表、栈、队列是数据结构与算法分析的第二章,其中我要讲的数据结构是来自于我看了各种书跟博客之后的总结跟理解,算法主要是算法导论这本书,讲述的的标准是C语言的标准, 并且我们讨论的常说的数据结构都是抽象的逻辑存在的,大家最好去看一下大O记法怎么计算算法速度跟空间的,我们很多时候就是为了这个效率跟空间弄出了很多抽象数据结构。

接下来先讲表。。。。表这个是书上写的  其实应该是链表跟顺序表两样。

表(list)

先说顺序表:
我们管形如A1,A2,A3,A4......AN-1的一般表,这个表的长度是N(从0开始的),大小为0的表叫空表,下面我们用表结构实现一个数组,我C没学过,只能大概写写可能有错误大家多包含意思懂了就可以。
<span>	</span>L.elem=(Elemtype *)malloc(LIST_INIT_SIZE* sizeof(Elemtype)); 
<span>	</span>

解释下上述代码malloc是分配内存空间的语句,list_init_size 就是分配的大小 sizeof是获取Elemtype里面所有数据类型的长度根据长度分配内存空间。这样就开辟了一块连续内存了,接下来要给他分配null或者初始化为0才行。不然这一块内存有之前别的程序存过的数据所以报错。数组的特性是一块连续的内存,添加在最后一个位置,插入和删除的时候如果后面有元素就让后面的元素地址后移然后把他添加进去。如果他非常长的话,你需要找到那个插入的位置然后让后面的所有元素都往后退一位由N变成N+1。如果后面特别多,就特别消耗资源。 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值