![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
东篱_
Never forget why you started,and your mission can be accomplished.
展开
-
C++ 使用数组建立二叉树 层序数组(方法一)
用数组建立二叉树1、输入数组要求 数组是按照层序输入的,当该结点为空时,用‘#’代替空的位置。 如: 图(a)中的二叉树的 输入数组为: int data[] = { 1, 2, 3, 4, 5, ‘#’, 6, ‘#’, ‘#’, 7, 8 }; 图(b)中的二叉树的 输入数组为: int data[] = { 1, 2, 3, 4, 5, ‘#’, 6, 7 };2、数...原创 2018-04-08 20:16:13 · 7605 阅读 · 5 评论 -
单链表之连接两个链表
1:要求 单链表L1: 1–>3–>5–>7 单链表L2: 2–>4–>6–>8 连接后: 1–>3–>5–>7–>2–>4–>6–>8 2:连接代码 单链表的结构定义如下:struct ListNode{ int m_nValue;//链表结点值 ListNode* m_pN...原创 2018-04-13 21:37:11 · 11684 阅读 · 3 评论 -
单链表 之 将该单链表中第i个位置的结点插入到第j个位置的节点之前,保持其他结点顺序不变
单链表 之 将该单链表中第i个位置的结点插入到第j个位置的节点之前,保持其他结点顺序不变 1、题目: 将该单链表中第i个位置的结点插入到第j个位置的节点之前,保持其他结点顺序不变。 输入:链表头结点,i,j 无输出。 eg: 将链表第3个结点插入到头结点之前InsertNodeIBeforeNodeJ_OK(p1,3,1);原链表:10->6->8-&...原创 2018-05-21 21:30:31 · 2240 阅读 · 0 评论 -
单链表的直接插入排序
单链表的直接插入排序 1、数组的直接插入排序void InsertSort(int *a, int len){ for (int i = 1; i < len; ++i) { for (int j = 0; j < i; ++j) { if (a[j]>a[i]) { ...原创 2018-05-21 22:07:36 · 4538 阅读 · 0 评论 -
哔哩哔哩2018.9.21笔试题——扭蛋机(堆的思想解决)
一、题目:扭蛋机甲乙俩人刚开始都没有蛋,甲扭2号机,乙扭3号机。(1)扭蛋机的规则:2号扭蛋机:2x+13号扭蛋机:2x+2eg: 如果甲刚开始没有蛋,扭一下2号机,获得2*0+1=1颗蛋。(2)游戏规则:要求以最少的次数恰好扭出N个蛋。(3)扭蛋规则:甲乙俩人部分先后,一人扭完蛋将所有的蛋交由另一个人扭或者自己扭,但是要保证扭蛋次数最少,且恰好扭出N个蛋。(4)输入输出:输...原创 2018-09-22 10:31:13 · 4015 阅读 · 3 评论 -
堆排序、堆排序优化、索引堆排序
堆排序、堆排序优化、索引堆排序(稳定排序) 1、堆: 所有元素 都从索引0开始父亲结点索引:i; 左孩子结点索引: 2*i+1; 右孩子结点索引: 2*i+2; 左后一个非叶子结点索引:(n-1)/2; 用于构建堆,从最后一个非叶子结点索引开始调整堆,直至到达索引为0的首个父亲结点2、堆排序(升序为例): 共两步: step1、构建堆 step2、原地堆排序step1...原创 2018-09-01 15:20:37 · 1186 阅读 · 0 评论 -
C++使用数组构造链表
C++使用数组构造链表1、链表的定义struct Node{ int value; struct Node* next;};2、使用数组构造链表Node *createList_array(int *a, int n){ Node *root = new Node(); Node *pnode = root; for (int i = 0; i < n - 1; +...原创 2018-11-02 18:41:05 · 5978 阅读 · 0 评论 -
二叉树的非递归遍历——前序、中序、后序、层序、层序按行输出
二叉树的非递归遍历——前序、中序、后序、层序、层序按行输出一、自己总结归纳的二叉树的非递归遍历——前序、中序、后序、层序、层序按行输出层序和前序的程序代码特别像,只有两点差别:1、只是层序用到queue,前序用的stack2、前序先push了右孩子,再push左孩子层序先push了左孩子,再push右孩子//层序遍历void LevelOrder(BinaryTreeNode *T...原创 2018-11-27 12:55:27 · 441 阅读 · 1 评论 -
C++ 使用数组建立二叉树 层序数组(方法二)
C++ 使用数组建立二叉树 层序数组(方法二)另外一种方法:见 C++ 使用数组建立二叉树 层序数组(方法一)试验中,遍历二叉树的非递归方法 见我的另一篇博客:二叉树的非递归遍历——前序、中序、后序、层序、层序按行输出1、输入数组要求数组是按照层序输入的,当该结点为空时,用‘#’代替空的位置。2、核心代码//层序数组构建二叉树BinaryTreeNode *ConstructBina...原创 2018-11-27 13:14:38 · 2939 阅读 · 5 评论