何大土  

随笔分类 -  数据结构

常见数据结构的基本操作的实现,以及相关算法。
  • 二叉树的相关算法(一)
    摘要:1.求二叉树所有的节点数 2.求二叉树所有的叶子节点数 3.求二叉树最小值的节点值 4.求二叉树所有节点值之和 5.求二叉树节点值为x的个数 6.删除二叉树 阅读全文
    posted @ 2018-09-02 16:51 何大土 阅读(417) 评论(0) 推荐(0)
  • 分别求二叉树前、中、后序的第k个节点
    摘要:一、求二叉树的前序遍历中的第k个节点 二、求二叉树的中序遍历中的第k个节点 三、求二叉树的后序遍历中的第k个节点 阅读全文
    posted @ 2018-09-02 16:45 何大土 阅读(2719) 评论(0) 推荐(0)
  • 二叉树的遍历(前、中、后序及层次遍历,递归和非递归实现)
    摘要:一、二叉树的前序遍历: 二、二叉树的中序遍历: 三、二叉树的后序遍历: 四、二叉树的层次遍历: 阅读全文
    posted @ 2018-08-31 15:05 何大土 阅读(3329) 评论(0) 推荐(0)
  • 创建二叉树,根据前序遍历或根据括号表示法
    摘要:二叉树节点: 输入前序遍历序列建立二叉树,空节点为空格: 根据树的括号表示法建立二叉树: 测试: 输入 "ABD G CE F " 阅读全文
    posted @ 2018-08-30 15:48 何大土 阅读(3132) 评论(0) 推荐(0)
  • 顺序队与链队的实现
    摘要:一、队列的基本概念 队列简称队,也是一种运算受限的线性表,其限制仅允许在表的一端进行插入,而在表的另一端进行删除,通常把进行插入的一端称为队尾(rear),进行删除的一端称作队首或对头(front)。 队列的主要特点是“先进先出”。 基本运算: init(&q):初始化队列,构造一个空的队列q。 i 阅读全文
    posted @ 2018-08-30 14:14 何大土 阅读(1041) 评论(0) 推荐(0)
  • 计算后缀表达式的值
    摘要:在上一篇随笔中已经知道如何将中缀表达式转换为后缀表达式,那么如何由后缀表达式计算出值呢? 阅读全文
    posted @ 2018-07-30 13:43 何大土 阅读(2029) 评论(0) 推荐(0)
  • 算术表达式(中缀表达式)转换为后缀表达式
    摘要:将后缀表达式exp转换为postexp的过程如下: while(从exp读取字符ch,ch!='\0') { 若ch为数字,将后继的数字都一次存放到postexp中,并以字符'#'标志数值串的结束; 若ch为左括号“(”,将此括号进栈到运算符栈op中; 若ch为右括号“)”,将运算符栈op依次出栈, 阅读全文
    posted @ 2018-07-28 13:55 何大土 阅读(2308) 评论(0) 推荐(0)
  • 栈的顺序和链式的表示和实现
    摘要:栈是一种只能在一端进行删除和插入操作的线性表,栈的主要特点是“先进后出”。 顺序栈:分配一块连续的存储区域存放栈中元素,并用一个变量指向当前的栈顶。 链栈:采用链式存储结构存储栈,栈的所有操作都是在单链表的表头进行的。 阅读全文
    posted @ 2018-07-26 14:28 何大土 阅读(1643) 评论(0) 推荐(0)
  • 链表的相关算法及应用(四)
    摘要:问题十一 :将两个递增的链表合并为一个递增的链表 问题十二 :将两个递增的链表合并为一个递减的链表,并用原来的两个单链表的节点存放归并后的单链表 问题十三 :将两个递增的链表A B的交集存放与A中 问题十四 :序列A B 存入了两个单链表,判断B是否是A的连续子序列 // 此处暴力枚举法 改进请参考 阅读全文
    posted @ 2018-07-25 14:07 何大土 阅读(280) 评论(0) 推荐(0)
  • 链表的相关算法及应用(三)
    摘要:问题六 :将两个单链表的相同的值,组成一个新的链表 问题七 :递增输出单链表 并释放节点 问题八 :将一个带头结点的单链表A 分解为两个带头结点的单链表A和B使A中保存原来序号为奇数的元素,B中保存原来序号为偶数的元素 问题九 :将C={a1,b1,a2,b2,...,an,bn},拆分为 A={a 阅读全文
    posted @ 2018-07-24 15:12 何大土 阅读(241) 评论(0) 推荐(0)
  • 链表的相关算法及应用(二)
    摘要:目录: 问题一:递归删除一个不带头结点的单链表L中的所有值为x的结点 问题二:反向输出单链表中节点的值 问题三 :删除单链表中最小值的节点 问题四 :删除值介于 a b之间的节点 问题五 :找出两个链表的公共节点 阅读全文
    posted @ 2018-07-24 15:05 何大土 阅读(255) 评论(0) 推荐(0)
  • 顺序表的常用算法
    摘要://问题一:删除最小元素,并用最后一个元素填补 bool delMin(SqList &L,elemType &val){ if(L.length==0){ printf("顺序表为空!\n"); return ERROR; } elemType min = L.elems[0]; int index = 0; for(int i=1;il&&L.elems[r]==x){ ... 阅读全文
    posted @ 2018-06-28 13:02 何大土 阅读(1147) 评论(0) 推荐(0)
  • 链表的相关算法及应用(一)
    摘要:1.逆置链表(递归、迭代两种方法) 2.逐对逆置链表(递归、迭代) 阅读全文
    posted @ 2018-06-16 21:59 何大土 阅读(496) 评论(0) 推荐(0)
  • 静态单链表
    摘要:一、静态链表: 用一维数组来描述线性链表,数组的每个分量中存储该节点的值和下一个节点在数组中的索引值。 这种存储结构仍需要预先分配一个较大的空间,但在作插入和删除操作时,不需要移动元素。 该开始创建一个数组来存放结点,则需要辨别哪些索引值中的结点已经使用,哪些未使用,以及每个节点的下一个结点在数组中 阅读全文
    posted @ 2018-06-16 20:29 何大土 阅读(668) 评论(0) 推荐(0)
  • 线性表的链式表示和实现
    摘要:一、线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中的任意元素,时间复杂度为1。然而,在做插入和删除操作时,需大量移动元素。 链式存储结构,它不要求逻辑上相邻的元素在物理位置上也相邻,插入和删除操作时,只需修改结点的下一个元素指针,但查找元素时效率不如顺序 阅读全文
    posted @ 2018-06-12 18:52 何大土 阅读(942) 评论(0) 推荐(0)
  • 顺序表的顺序表示和实现
    摘要:一.线性表的顺序表示的概念:用一组地址连续的存储单元依次存储线性表的数据元素。 1.线性表中的第i+1个元素的存储位置LOC(a[i+1]) 与第i个元素的存储位置LOC(a[i])之间的关系为: LOC(a[i+1]) = LOC(a[i])+n; n表示每个元素元素占用n个存储单元。 二.线性表 阅读全文
    posted @ 2018-06-11 16:30 何大土 阅读(1248) 评论(0) 推荐(0)