数据结构-C++实现(二):单向链表
来源:互联网 发布:上古卷轴5男捏脸数据 编辑:程序博客网 时间:2024/05/21 18:34
和数组不同,链表的数据结构内部多了一个指针指针下一个位置,使得在链表中插入删除特定位置的元素效率很高,代码实现依旧分为三个部分,抽象类LinearList.h,模板类chain.h以及main函数源文件。
废话不多说,我们看代码,这次LinearList.h抽象类里面多了两个成员函数一个是push_back(),一个是clear():
然后是chain.h,单向链表的模板类:
随便写的测试:
#include <iostream>#include "chain.h"int main(){ chain<int> ic; ic.insert(0,1);ic.insert(0,2);ic.push_back(3);ic.push_back(4); chain<int> ic1(ic);ic1.reverse(); cout << ic1 << endl; return 0;}我发现写这个还是很锻炼人的,一个完善的数据结构轻轻松松几百行代码,每天一发,感觉很酸爽,C++简直写上瘾。
不废话了,我们回归头来看看链表的头文件里都定义了啥:
chainNode类定义了节点类,包含数据成员以及指向下一个节点的指针。包含构造、拷贝以及析构函数。
chan类继承自LinearList抽象类,包含节点类的成员变量,以及一个嵌套类iterator。
成员函数分为几个部分,首先是构造、拷贝以及析构函数,值得注意的是在构造函数中有一个参数initCapacity,实际是无作用的,仅仅为了和之前的ArrayList一致。
然后是继承自抽象类的方法,和ArrayList中的区别不大。
最后是我做的几个习题,voidremoveRange(intfromIndex,inttoIndex)的作用是将参数限定范围内的节点删除的操作。intlastIndexOf(constT& theElement)是返回与函数参数相等的最后一个位置的索引。T&operator[](intindex) const是对[]运算符进行重载,返回指定索引的节点的数据的引用。voidreverse()是将整个链表进行反转的操作,要求不开辟多余的空间。
0 0
- 数据结构-C++实现(二):单向链表
- 数据结构--单向链表C实现
- 数据结构--单向链表(c++)
- 数据结构(C语言)-单向链表
- 数据结构的C实现_单向链表
- 数据结构之单向链表的实现【C++】
- 单向循环链表的简单实现--数据结构学习(二)
- Linux C 数据结构---链表(单向链表)
- Linux C 数据结构---链表(单向链表)
- 数据结构(C++)——单向循环链表
- C语言数据结构:单向链表
- Linux C 数据结构---单向链表
- 数据结构-单向链表(C语言)
- C++:单向链表实现
- 数据结构(单向链表)
- 数据结构实验二 链式存储结构----单向链表的有关操作(学生成绩信息C语言)
- C++数据结构--单向循环链表(实现头插法,尾插法)
- 数据结构之单向链表(java实现)
- 【安卓知识点汇总】 UI加载大卫星图处理
- Vue 表单验证插件的写作过程
- Robot Framework 以及 对应的库安装
- JPEG数据转YUV数据应用实例
- java环境变量配置
- 数据结构-C++实现(二):单向链表
- [Unity基础]移动平台下的文件读写
- [Android N]MediaRecorder系列之StagefrightRecorder录制TS流flow(四)
- Uncaught TypeError: XX is not a function at HTMLInputElement.onclick
- linux命令
- selenium之 浏览器导航栏的三个按钮(back、forward、refresh)
- RunLoop总结:RunLoop基础知识
- 一个非常棒的图片 演示 iptables 与 linux的input或者nat
- 【51Nod 1201】 整数划分