数据结构C++语言版
C++ 语言版,数据结构
荆黎明
这个作者很懒,什么都没留下…
展开
-
数据结构:递归(实现n个数的全排列使用C++实现)
数据结构:递归递归在数据结构中可以用来编制表和树结构的查找和排序算法,在数学领域可以应用于组合数学领域,其处理对象是大量的计数和可能性问题。递归是算法研究、运算研究模型、博弈论和图论的重要课题。如果解决问题的方法是把一个问题分解成小的子问题,并且这些小的子问题可以用同样的算法解决,那么就可以用递归。当分解到可以解决的比较简单的子问题是分解过程即终止。将这些子问题称为终止条件。递归运用的是“分而治之”的策略。如果一种算法的定义组成如下,则它就是递归的。1、对应于某些参数可以求值的一个原创 2020-10-26 09:32:12 · 4031 阅读 · 0 评论 -
数据结构 (C++语言版)暂封
暂封由于本人(菜鸟)认为,我的博客【数据结构(C++语言版)】没有收获,所以暂时停更,先从最基本的【数据结构与算法:C语言描述】做起,待到成熟时,再重新更新【数据结构(C++)语言版】。不能空中造花园,要先夯实基础,然后才能从量变到质变。数据结构(C++语言版)再见。...原创 2020-08-25 17:15:49 · 94 阅读 · 0 评论 -
数据结构 (c++)笔记7 (栈)
栈栈(stack) 是存放数据对象的一种特殊容器,其中的数据元素按线性的逻辑次序排列,故也可定义首、末元素。 不过, 尽管栈结构也支持对象的插入和删除操作,但其操作的范围仅限于栈的某一特定端。也就是说, 若约定新的元素只能从某一端插入其中, 则反过来也只能从这一删除已有的元素。 禁止操作的另一端,称作盲端。栈顶: 栈中可操作的一端栈底:栈中不可操作的一端栈的接口栈中元素接受操作的次序必然始终遵循所谓“后进先出” (last-in-first-out, LIFO) 的规律: 从栈结构的整个生命原创 2020-08-21 10:10:13 · 246 阅读 · 0 评论 -
数据结构 (C++)笔记6 (有序列表 & 排序器)
有序列表 & 排序器有序列表若列表中所有节点的逻辑次序与其大小次序完全一致,则称作有序列表。唯一化template <typename T> int List<T>::uniquify() { //成批剔除重复元素,效率更高 if ( _size < 2 ) return 0; //平凡列表自然无重复 int oldSize = _size; //记录原规模 ListNodePosi(T) p = first(); ListNodePosi(T原创 2020-08-18 17:38:35 · 814 阅读 · 0 评论 -
数据结构(C++)笔记5 (列表)
列表头、尾节点List对象的内部组成及逻辑结构如图所示,其中私有的头节点( header) 和尾节点( trailer) 始终存在,但对外并不可见。对外部可见的数据节点如果存在,则其中的第一个和最后一个节点分别称作首节点( first node) 和末节点( last node) 。就内部结构而言, 头节点紧邻于首节点之前, 尾节点紧邻于末节点之后。这类经封装之后从外部不可见的节点, 称作哨兵节点( sentinel node) 。默认构造方法创建List对象时,默认构造方法将调用如代码所示的原创 2020-08-18 16:31:55 · 315 阅读 · 0 评论 -
数据结构(C++)笔记4 (列表接口)
列表接口作为列表的基本组成单位,列表节点除需保存对应的数据项,还应记录其前驱和后继的位置, 故需将这些信息及相关操作组成列表节点对象,然后参与列表的构建。列表节点ListNode模板类链表结构typedef int Rank; //秩#define ListNodePosi(T) ListNode<T>* //列表节点位置template <typename T> struct ListNode { //列表节点模板类(以双向链表形式实现)// 成员 T原创 2020-08-18 10:14:30 · 141 阅读 · 0 评论 -
数据结构 (C++)笔记3 (从向量到列表)
从向量到列表在设计或选用数据结构时,应从实际应用的需求出发,先确定功能规范及性能指标。引入列表结构的目的,就在于弥补向量结构在解决某些应用问题时,在功能及性能方面的不足。二者之间的差异,表面上体现于对外的操作方式,但根源则在于其内部存储方式的不同。从静态到动态数据结构支持的操作,通常无非静态和动态两类: 前者仅从中获取信息, 后者则会修改数据结构的局部甚至整体。静态存储:各元素物理地址连续动态存储:要求各元素在逻辑上具有线性次序,对其物理地址却未作任何限制(比如列表结构链表(linke原创 2020-08-18 08:54:01 · 147 阅读 · 0 评论 -
数据结构(C++)向量 笔记2
有序向量有序性甄别唯一化无序向量中,清除相同的元素,就效率而言,一般做法是先将无序向量转化为 有序向量。低效率版算法template <typename T> int Vector<T>::uniquify() { // 有序向量元素剔除算法(低效版) int oldSize = _size; int i = 1; // 当前比对元素的秩,起始于首元素 while (i < _size) // 从前向后,逐一比对各相邻元素原创 2020-08-16 09:56:48 · 168 阅读 · 0 评论 -
数据结构(C++) 向量 笔记1
从数组到向量向量(vector) 就是线性数组的一种抽象与泛化,它也是由具有线性次序的一组元素构成的集合V = { v0, v1, …, vn-1 },其中的元素分别由秩相互区分。各元素的秩(rank) 互异,且均为[0, n)内的整数。具体地,若元素e的前驱元素共计r个,则其秩就是r。接口ADT接口动态空间管理向量实际规模与其内部数组容量的比值(即_size/_capacity) ,亦称作装填因子(load factor) , 它是衡量空间利用率的重要指标。问题如何才能保证原创 2020-08-15 19:18:11 · 357 阅读 · 0 评论