C++:数组与链表

数组

定义

数组是一组内存位置固定,元素之间间隔相同的连续数据。

优缺点

优点

由于数组的内存位置固定并且是连续的,我们可以快速又方便的查找一个数组中的任意一元素。

访问数组中的元素:

数组名称[元素下标]

缺点

由于数组的内存位置固定并且是连续的,我们无法快速插入和删除元素。一次插入或删除元素就会使数组有很大的波动。(插入或删除一个元素时,这个元素后面的其它元素都需要后移/前移,会用上循环)

链表

定义

链表就是用来解决数组有的问题的数据结构。它的每一个元素不一定存储在连续的空间内。数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表的每一个存储单元(类似于一个元素被存放的格子)中会包含两部分:值域和链域。值域就是存储真正的数据的地方。一个存储单元的值域可以有多个不同类型的变量。链域就是存放该元素后下一个元素的地址的空间。因为链表中的元素不一定连续,所以必须用一些空间来存放该元素的下一个元素的地址。

链表的第一个指针叫做头指针。链表的最后一个指针叫做尾指针。

程序定义链表:

struct node{
    int data;//值域(data这个变量可以换成其它名称)
    char words;//同上
    int next;//链域(现在暂时不用指针)(next这个变量可以换成其它名称)
}a[100];

优缺点

优点

插入和删除元素非常方便。只需要改变几个元素的链域即可做到插入和删除元素。

缺点

访问元素的时候非常麻烦,需要从头到尾找到该元素。

感谢阅读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值