![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法设计
程序员小马z
把别人的东西变为自己的东西!!!
展开
-
Hanoi Tower Problem(汉诺塔)
当然、这是一个经典的递归问题~ 想必来看这篇博文的同学对汉诺塔应该不会陌生了吧, 写这篇博还是有初衷的: 之前学数据结构的时候自己看书、也上网上查了很多资料,资料都比较散、而且描述的不是很清楚,对于当时刚刚接触算法的我,要完全理解还是有一定难度。今天刚好有时间就整理了下思路、重写分析了一下之前的疑惑的地方、没有透彻的地方便都豁然开朗了。所以迫不及待把我的想法转载 2017-04-03 15:06:18 · 1128 阅读 · 0 评论 -
普通树转完全二叉树储存思路
绿色的是普通树,蓝色的是转为满二叉树,黄色的是去掉了底层连续的叶子节点,即成了完全二叉树优点: - 查找某个节点的子节点和父节点方便 缺点 - 耗用内存过大...原创 2018-04-22 10:51:22 · 1623 阅读 · 0 评论 -
顺序表删除下标为【i-j】的所有元素
void delete(Sqlist&L,int i,int j){ int k ,delta; delta=j-i+1; for(k=j+1;k<L.length;++K) { L.data[k-delta] = L.data[k]; } L.length-=delta;//改变表长}原创 2018-04-22 14:55:01 · 850 阅读 · 0 评论 -
一般树转二叉树
具体转换方法:左指针域指向它的第一个孩子;右指针域指向它的堂兄弟;普通书转化为二叉树一定没有右子树原创 2018-04-22 15:40:28 · 356 阅读 · 0 评论 -
森林转二叉树
类似于一般树转二叉树。原创 2018-04-22 15:41:12 · 175 阅读 · 0 评论 -
树的前序中序后序
已知前序、中序求。后序 前序:ABCDEFGH 中序:BDCEAFHG 首先由 前序:根-左子树-右子树 中序:左子树-根-右子树知道了A是根节点1。BCDE是在左子树,FGH是在右子树。 由递归的思想,BCDE看做新的树。 即有: 前序:BCDE 中序:BDCE 知道了B是根节点2,CDE是右子树,无左子树。like this。...原创 2018-04-22 16:35:27 · 631 阅读 · 0 评论 -
19. Remove Nth Node From End of List
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* removeNthFromEnd(struct ListNode* head, int n) { if(head==N...原创 2018-04-25 09:53:35 · 98 阅读 · 0 评论 -
汉诺塔问题
大一学过这个问题,自以为弄明白了。结果还是一知半解,有个好的老师很关键if(n>1){ 先把A柱子上的前n-1个盘子从A借助C移到B; 将A柱子上的第n个盘子直接移到C; 再将B柱子上的n-1个盘子借助A移到C;}代码省略。不过搞明白汉诺塔了...原创 2018-04-21 21:10:33 · 98 阅读 · 0 评论 -
237. Delete Node in a Linked List
问题描述: Write a function to delete a node (except the tail) in a singly linked list, given only access to that node. Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the...原创 2018-04-26 09:07:55 · 90 阅读 · 0 评论 -
206. Reverse Linked List
Reverse a singly linked list. click to show more hints. Hint: A linked list can be reversed either iteratively or recursively. Could you implement both?思路:头插法 该方法从一个空表开始,生成新结点,并将读取到的...原创 2018-04-27 15:25:48 · 322 阅读 · 0 评论 -
队列-1
队列分类 链式队列–链表 静态队列–数组 静态队列通常是循环队列 循环队列的讲解:静态队列为什么是循环队列?循环队列需要几个参数?循环队各个参数的含义循环队列入队的伪算法循环队出队的伪算法如何判断循环队列为空如何判断循环队列已满 取余操作很骚出队 f+1%数组长度如何判断已满多增加一个表标识参数少用一个参数 ...原创 2018-04-15 14:17:56 · 200 阅读 · 0 评论 -
【栈】-1
静态局部变量在栈,动态内存是在堆; 栈和堆分配内存的方式不一样。栈:”先进后出”的存储方式分类:静态栈动态栈(本质是链表) typedef struct Node{ int data; struct Node * pNext;}NODE, *PNODE;typedef struct Stack{ PNODE pTop;...原创 2018-04-14 14:14:25 · 156 阅读 · 0 评论 -
深入冒泡排序
分析:第一轮,需要比较n-1次;第二轮,需要比较n-2次;第三轮,需要比较n-3次。。。。。。并且最大的数会依次往后靠,就不需要比较。因此’j’可以到n-1-i轮就可以{ int i, j, t; for (i = 0; i < pArr->cnt-1; i++) { for (j = 0; j < pArr->cnt...原创 2018-04-08 16:19:55 · 127 阅读 · 0 评论 -
二叉树的学习(中)
二叉搜索树(BST) 二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意节点的右子树不空,则右子树上所有结点的值均大于它的原创 2017-05-08 16:38:11 · 200 阅读 · 0 评论 -
图的学习-huffman code
huffman:转载 2017-06-04 21:06:30 · 193 阅读 · 0 评论 -
十进制整(小)数与二进制补码相互转换
前置知识:二进制与十进制相互转换、原码反码补码移码十进制整数转二进制补码用基本的方法:通过十进制转化为二进制,二进制转为原码,再转反码,再转补码。。。。 详见:http://blog.csdn.net/qq_35025383/article/details/73456610二进制补码转十进制整数一、已知的二进制是以0开头的二进制补码也就是说这个二进制补码的左边最高位是以0开头的。最高位是0,在在二原创 2017-06-19 09:40:10 · 12485 阅读 · 0 评论 -
最大子序列和算法
1.1最大子序列和问题: 给定(可能有负数)整数a(1)、a(2)、……a(n),求 a(1)+a(2)+……+a(j)的最大值。为方便起见,若所有的整数为负数,则最大子序列和为0.也就是:在一系列整数中,找出连续的若干个整数,这若干个整数之和最大。1.2问题分析: 首先,我们可以想到用 i 来标记开始的元素,j标记末端的元素,k来标记数组的下标。那么我们可以用三重循环来解原创 2017-04-01 15:13:07 · 392 阅读 · 0 评论 -
原码,反码,补码,移码
原码: 如果机器字长为n,那么一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为0,负数为1。剩下的n-1位表示概数的绝对值。例如: X=+101011 , [X]原= 00101011 X=-101011 , [X]原= 10101011 位数不够的用0补全。 PS:正数的原、反、补码都一样:0的原码跟反码都有两个,因为这里0被分为+0和-0。反码: 知道了什么是原码转载 2017-06-19 08:37:03 · 2020 阅读 · 1 评论 -
图的学习
tree traversals againComplete binary research tree compare 根据实际写计算左子树原创 2017-06-04 15:13:14 · 195 阅读 · 0 评论 -
前序遍历、中序遍历恢复二叉树
总结:递归真好理解。。。原创 2017-06-20 16:25:26 · 318 阅读 · 0 评论 -
快速求幂
首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下: 假设我们要求a^b,那么其实b是可以拆成二进制的,该二进制数第i位的权为2^(i-1) 例如当b==11时 , a^11=a^(2^0+2^1+2^3),11的二进制是1011,11 = 2³×1原创 2017-06-23 12:08:29 · 209 阅读 · 0 评论 -
寻找主元素
出自数据结构与算法设计-c语言描述第二版 2.19题目:原创 2017-06-20 16:23:56 · 3850 阅读 · 0 评论 -
深度优先搜索(DFS)和广度优先搜索(BFS)
点击转载 2018-07-07 07:55:56 · 217 阅读 · 0 评论