数据结构与算法
Zach_z
0.005
展开
-
重建二叉树
重建二叉树原创 2018-03-05 11:28:13 · 902 阅读 · 0 评论 -
ELFhash----字符串哈希算法
ELFHash字符串哈希原创 2018-04-05 01:02:50 · 1671 阅读 · 2 评论 -
设计一个有getMin功能的栈
使用C++完成《程序员代码面试指南 IT名企算法与数据结构题目》题目实现一个特殊的栈,在实现栈的基本功能基础上,再实现返回栈中最小元素的操作实现使用两个栈,一个栈用来保存当前栈中的元素,起功能和一个正常的栈没有区别,这个栈记为stackData;另一个栈用于保存每一步的最小值,这个栈记为stackMin1. 第一种方案压入数据规则:假设当前数据为newNum...原创 2018-07-30 13:36:34 · 663 阅读 · 0 评论 -
由两个栈组成一个队列
使用C++完成《程序员代码面试指南 IT名企算法与数据结构题目》题目编写一个类,用两个栈实现队列,支持队列操作: - push:入队 - pop:出队(不返回值) - front:返回最先入队的值实现栈的特点是先进后出,队列特点是先进先出使用两个栈一个最为压入栈,一个作为弹出栈,压入栈只压入数据,弹出栈只弹出数据数据按照1->2->3的顺序被压入进压入栈...原创 2018-07-30 20:25:52 · 1071 阅读 · 1 评论 -
使用递归函数和栈逆序操作一个栈
使用C++完成《程序员代码面试指南 IT名企算法与数据结构题目》题目使用递归函数来实现对一个栈的逆序比如一个栈依次压入1 2 3,则栈顶到栈底分别为3 2 1,将栈逆序后栈顶到栈底为 1 2 3实现两个递归函数解决问题 1. 将栈的栈底元素返回并移除 2. 逆序操作一个栈具体代码#include <stack>using namespace...原创 2018-07-31 00:15:19 · 959 阅读 · 0 评论 -
一个栈实现另一个栈的排序
使用C++完成《程序员代码面试指南 IT名企算法与数据结构题目》题目一个栈中元素的类型为整形,现在想将该栈按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构解决排序栈为myStack,辅助栈为helpStack,整体思想是把myStack的数据放入helpStack中,并且在helpStack中栈顶到栈底按照从小到大排列 - 对mySt...原创 2018-07-31 00:45:37 · 1546 阅读 · 0 评论 -
递归解决汉诺塔问题+改变规则解决
一、汉诺塔问题1.1 问题描述三根柱子,其中一根柱子从上到下依次摆放着从小到大的圆盘: - 每次只能移动一个圆盘 - 并且大圆盘不能在小圆盘之上 - 需要把这个柱子上的圆盘全部移动到另一根柱子上问题抽象为,把a柱子上的N个圆盘按照顺序摆放到柱子c上:1.2 问题解决可以吧解决步骤抽象成: 1. 将N-1个圆盘从a移动到b 2. 把第N个圆盘从a移动到c 3....原创 2018-07-31 20:01:34 · 1300 阅读 · 0 评论 -
快速排序
问题将一个数组从小到大排序解决选择一个数字a(可以是要排序数组里任意数字,这里直接选择排序的中间数字),把小于a的数放在数组左边,把大于a的数组移到数组右边;再对左边和右边的两个子数组排序(即递归操作)代码static void Swap(int *a,int *b){ int p=0; p=*a; *a=*b; *b=p;}int ...原创 2018-08-12 23:54:55 · 1068 阅读 · 0 评论 -
字符串中的第一个唯一字符
leetcode 的easy题:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.注意事项:您可以假定该字符串只包含小写字母。根据只包含小写字母(26个),记录三种状态(只用26 * 2bit表示即可):int first_uniq_char(char...原创 2019-04-22 09:54:05 · 790 阅读 · 0 评论