数据结构
是蛋筒啊
保持学习 保持热情
展开
-
走迷宫
迷宫问题解决迷宫问题我们一般采用回溯法,即将原问题分解为若干子问题来解决,当子问题无法在继续进行下去时,就退回到上一步来搜索该位置的其他分支,若还是无法解决,就再向后退,直至找到可行解或找不到退出为止。迷宫一般分为无环和带环、我们先来看无环迷宫不带环迷宫 主要步骤:1.检测入口 2.检测当前位置是否为通路,走当前步 up———>...原创 2018-03-23 09:35:06 · 388 阅读 · 0 评论 -
基数排序
基数排序(桶排序)基数排序(Radix Sort)又称多关键码排序,它通过一些键值,将序列中的元素分配至相应的桶中,以达到排序的目的,它是一种稳定的排序算法,其时间复杂度为O(M*N),M为数据位数,N为数据个数,空间复杂度为O(N)。基数排序又分为低关键码优先和高关键码优先两种。我们先来研究第一种:低关键码优先排序步骤: 1.首先根据个位数的数值,将所有数据分配到0~9...原创 2018-03-25 12:19:07 · 108 阅读 · 0 评论 -
关于单链表的面试题(一)
1.逆序打印单链表 解题思路:通过递归实现viod PrintListFromTail2Head(PNode pHead){ if(pHead) { PrintListFromTail2Head(pHead->_pNext); printf("%d ",pHead->data); }}2.删除单链表的非尾结点 (...原创 2018-03-27 10:44:13 · 148 阅读 · 0 评论 -
关于栈和队列的面试题
1.实现一个栈,要求实现Push,Pop ,Min(返回最小值)的时间复杂度为O(1)方法一: 解题思路:首先我们在之前封装的栈结构外面再封装一层,将其封装为一个最小栈, 与之前不同的是,我们在栈中存放的是一个结构体,这个结构体中有两个成员, 一个是数据本身的值,另一个为栈内所有存放元素中的最小值,这样即可实现压栈,出栈,取最小值操作都为O(1)代码如下://用当前元素值和栈...原创 2018-03-28 23:15:40 · 224 阅读 · 0 评论