> 娱乐
数组和链表的储存效率(数组可以用链式存储吗)
导语:还用数组存放数据?快来了解一下链表吧!数据结构入门,小白必看
为什么要了解数据结构?用数组存放数据不香吗?
1、在函数中使用数组存放数据消耗的是栈空间的内存,一不小心就会产生溢出。
2、存放的数据类型单一,要么是int型要么是char型的数据要么就是各种指针类型,对于多类型的数据来说,数组就捉襟见肘了。
3、如果对数组的某个元素进行增删改查的操作,通常要对整个数组进行遍历、成片数据的移动,效率太低。
链表是C语言中最基础的数据结构,后面的双向链表、二叉树都是由单向不循环链表拓展出来的。对于刚学习完语言基础语法的同学来说,是时候来了解数据结构了。
单向链表:
上图中,所有的节点均保存一个指针,指向其逻辑上相邻的下一个节点(末尾节点指向空)。另外注意到,整条链表用一个所谓的头指针 head 来指向,由 head 开始可以找到链表中的任意一个节点。head 通常被称为头指针。
了解完单项链表的基本结构后,我们来一步步用C代码实现这种数据结构。
一、节点设计二、初始化空链表我们一般都会用带有头结点的链表存放数据,比较方便使用。
基本思路:
初始化代码:
三、增删结点基本思路(头插):
代码示例:
基本思路(尾插):
示例代码:
四、链表的遍历五、结点的查找结点查找的思路和链表的遍历差不多:
六、结点的删除基本思路:
示例代码:
关于单向链表的一些基本操作就这些,实现了对单向链表的增删改查。如果有哪里没看懂的朋友欢迎留言提问。
本文内容由小姿整理编辑!