CPP学习之——链表和结构体连接(15.1-2)
一 概述
本节课主要介绍链表和结构体链表的相关概念
二 链表
- 数组就像容器,它的大小是不可调节的,这一点很令人头疼,因为假如你没了一个很大的容易,却用来盛比较少的东西的话,你会感到很浪费,但是如果你换成小容器的话,它又放不下许多东西。
- 链表的出现无形中解决了这个问题,它将一个容器分解成若干个小容器,每一个小容器放入合适大小的元素,然后根据需要将它们连接起来
- 这些若干个小容器我们把它叫做结点,通常它们都是按照顺序排列,排列在第一位的那个容器我们叫它头节点,最后一位的叫尾结点。由于它们的外形是那么的相似,所以加入你要找到放置在某个容器中的东西的话,你只有一个办法,那就是从第一个容器开始往后找,因为每个容器里除了放你要放置的东西外,还会放置下一个容器的地址,我们可以根据这个地址依次找到所需的容器
- 但是这里又有一个问题,那就是这些容器放了一些比较私人的东西,我不想叫人知道,所以把它们都分别放在比较隐蔽的地方,隐蔽的连我都不知道放在哪里去了,不过好在我还留了一个叫head的纸条(该纸条记录的是下一个容器的地址)找到了第二个容器,然后这么依次进行,直到找出我需要的东西为止
三 结构体链表
3.1 概念
我们具体;来操作一下:
- 为了便于理解,我们用结构体来代替类操作,这里先来说一下结构体,在C++中,结构体与类相同,不同的是结构体的成员默认为公有成员,而类的成员默认为私有成员
- 既然它们相同,为什么又要两个关键字来做一样的事情呢?这是因为C语言时代的结构体,没有类方法,功能很单一,不能进行数据的封装和成员的继承,因此C++的创始人Bjame Stroustrup创造了高级的结构体,也就是类。
- 这里我们之所以用结构体来说明链表,这是因为结构体比较浅显易懂,我们了解结构体的链表之后,再看来的链表就不那么抽象和晦涩了
3.2 示例
1 | #include<iostream> |
3.3 输出结果
1 | 10000,14.5 |