表达式求值 发表于 2019-03-14 | 分类于 data_structure 一、 程序思路1. 问题分析:表达式是由运算对象、运算符和圆括号组成的式子。在这个程序中只讨论简单的算术运算。为了实现运算符的优先运算,用两个栈分别存储表达式:OPND:运算对象栈,用来存储运算对象和运算结果;OPTR:运算符栈,用来存储运算符; 2. 算法思想:规定@为表达式的定 ... 阅读全文 »
编写链表结构遇到的问题 发表于 2019-03-14 | 分类于 data_structure 返回目录 描述1:LinkList(T a[], int n);//构造函数定义了链表构造函数,值和数目。 在test.cpp中,如下引用该函数:LinkList<CStudent> pStu(LoadFile("data.csv"),length); lengt ... 阅读全文 »
线索二叉树 发表于 2019-03-14 | 分类于 data_structure 一、简介线索二叉树是在二叉树的基础上,把空指针加以利用,通过左右type域来标记类型。生成方法是先构造二叉树,再把二叉树线索化,线索化的过程稍候会介绍。 二、线索二叉树的节点构造先贴代码:123456789enum BiThrNodeType{LINK,THREAD};temp ... 阅读全文 »
线性表的实现及其功能的拓展 发表于 2019-03-14 | 分类于 data_structure 返回目录 本文目的在于,对线性表实现的描述,以及代码的简单实现 线性表概况描述下面是函数的头文件部分12345678910111213141516171819202122232425262728template <class dataType, int MaxSize>class S ... 阅读全文 »
树 发表于 2019-03-14 | 分类于 data_structure 终于,在半学期过后,跨入了树的学习。 一、简介之前,我们已经学习了一对一的线性结构,而树,是一种一对多的结构,树的定义,可以理解为递归,每棵树包含了子树,依次类推。 我们这边讨论的是二叉树,较为简单,下面进行讨论。 二、顺序结构存储二叉树因为二叉树的特性,我们可以用数组来存储,首先,满二叉树的表示 ... 阅读全文 »
数据结构——链表报告 发表于 2019-03-14 | 分类于 data_structure 返回目录 一、设计方式结点结构:包含数据域以及指针域,数据域通过模板可以实现不同类型的数据类型。123456template <class T>struct Node{ T data; Node<T> *next;}; 链表结构:包含头结点,用于数据的 ... 阅读全文 »
字符串 发表于 2019-03-14 | 分类于 data_structure 一、从字符串谈起本文主要讨论C串与string类的区别。在谈区别前,首先提下,字符串是显示生活中绝大多数数据的存储形式,几乎任何数据,都能以字符串的方式存储。所以字符串是很重要的。在平常的数据处理中,有可能会处理大量的字符串。 1.1、c语言中的字符串在c中,并没有提供string类,C语言中有一 ... 阅读全文 »
图 发表于 2019-03-14 | 分类于 data_structure (本文以邻接矩阵为例,存储无向网,介绍图中的各种算法) 一、图的存储图在存储方面,可以分为两种方式: 邻接矩阵 邻接表 一张图会包括 顶点和边 ,同时,根据边是否有方向,可以把图分为: 有向图 无向图 然后 如果边上是带权的话,我们把对应的名字改为 有向网 无向网 下 ... 阅读全文 »
哈夫曼树与哈夫曼编码 发表于 2019-03-14 | 分类于 data_structure 一、概念哈夫曼树(Huffman tree),又名最优树,指给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。 二、想法2.1、节点结构哈夫曼树的节点中应该存在数据,权重,双亲以及左右孩子,所以节点构造如下 ... 阅读全文 »
双栈模拟队列 发表于 2019-03-14 | 分类于 data_structure 一、简介队列的操作,即进队和出队伍,还有判空函数,由于这里调用STL的栈,用的是deque做的容器,不存在判满。 那么,有种很容易想到的思路,从a进栈,但是由于先进来的被压在了最下面,而我以后需要第一个用的就是这个被压在底部的元素,所以,当要取得时候,把栈a倒扣,元素全部灌倒b中,把b中的第一个拿 ... 阅读全文 »