随笔分类 - C/C++
摘要:模拟指针,也就是清华严老师《数据结构-C语言描述》中的静态链表,静态链表的引用是使用一段连续的存储区还模拟指针的功能,可以有效的利用一段连续内存进行一定范围内可变的子链表的空间分配,此数据结构原理比较简单,但是实现起来(至少我个人感觉)有一些绕,原因在于结点的指针域和所申请的整个空间数组的下标都是用整型来表示,极易出错,由于使用连续存储区,稍有不甚将指针地址错写成数组下标则很容易出错并且很难被发现。 以下为本次实现的模拟指针代码,由三个文件构成: 1、 simulatedPointer.h 定义了模拟指针的一些基本结构和方法 2、excp.h 和前面一样,包含定制的异常类...
阅读全文
摘要:间接寻址(indirect addressing)是公式化描述和链表描述的组合。采用这种方法,可以保留公式化描述方法的许多优点,在单位时间内访问每个元素,可采用二叉搜索方法在对数时间内对一个有序表进行搜索等等。与此同时,也可以获得链表描述方法的重要特色---在诸如插入和删除操作期间不必对元素进行实际的移动。因些,大多数间接寻址链表操作的时间复杂度都有元素的总数无关。 说到底,间接寻址只是一个每链只有一个节点的邻接矩阵。实现起来简单方便,兼具顺序表与链表的优点。 本次程序采用仍使用C++语言实现,为保证通用性使用模板机制。 程序结构: 1、IndirectAddr.h ...
阅读全文
摘要:此次实现的数据结构仍为线性表,物理结构上采用链表结构,与顺序表相比有以下特点:优点:不再有存储空间上的限制(主要取决了机器的存储能力,不会提前分配一定量的空间)缺点:失去了随机存储特性,若只用简单的链表则查找、插入、删除都将占用O(K)的时间(K为操作位置)使用C++语言实现。代码如下: 1 //linkList.h 2 #ifndef __LINKLIST__ 3 #define __LINKLIST__ 4 #include 5 #include "excp.h" 6 using namespace std; 7 8 template 9 class linkList.
阅读全文
摘要:使用c++实现一下常用的数据结构,参考书为《数据结构、算法与应用-c++语言描述》。此次代码为顺序表,为了保证通用性采用模板机制,算法本身没有什么难度,毕竟是基础算法,但是长时间不用c++,一些高级特性和陷阱着实让人难受。此次代码共分三个文件:1、Sq_list.h :实现顺序表的结构和基本操作。2、excp.h :实现异常类,关于命名空间的问题,直接将异常类加入到std空间内。3、sq.cpp :主函数,简单测试,可稍加简单修改,转为交互式程序。 1 Sq_list.h 2 //construct the sq_list with template 3 #ifndef _sqList_ ..
阅读全文

浙公网安备 33010602011771号