搜索
写经验 领红包
 > 娱乐

数组和链表的储存效率(数组可以用链式存储吗)

导语:还用数组存放数据?快来了解一下链表吧!数据结构入门,小白必看

为什么要了解数据结构?用数组存放数据不香吗?

1、在函数中使用数组存放数据消耗的是栈空间的内存,一不小心就会产生溢出。

2、存放的数据类型单一,要么是int型要么是char型的数据要么就是各种指针类型,对于多类型的数据来说,数组就捉襟见肘了。

3、如果对数组的某个元素进行增删改查的操作,通常要对整个数组进行遍历、成片数据的移动,效率太低。

链表是C语言中最基础的数据结构,后面的双向链表、二叉树都是由单向不循环链表拓展出来的。对于刚学习完语言基础语法的同学来说,是时候来了解数据结构了。

单向链表:

上图中,所有的节点均保存一个指针,指向其逻辑上相邻的下一个节点(末尾节点指向空)。另外注意到,整条链表用一个所谓的头指针 head 来指向,由 head 开始可以找到链表中的任意一个节点。head 通常被称为头指针。

了解完单项链表的基本结构后,我们来一步步用C代码实现这种数据结构。

一、节点设计

二、初始化空链表

我们一般都会用带有头结点的链表存放数据,比较方便使用。

基本思路:

初始化代码:

三、增删结点

基本思路(头插):

代码示例:

基本思路(尾插):

示例代码:

四、链表的遍历

五、结点的查找

结点查找的思路和链表的遍历差不多:

六、结点的删除

基本思路:

示例代码:

关于单向链表的一些基本操作就这些,实现了对单向链表的增删改查。如果有哪里没看懂的朋友欢迎留言提问。

本文内容由小姿整理编辑!