
数据结构与算法
Jimyang1ssa
这个作者很懒,什么都没留下…
展开
-
编程之美学习笔记--一摞烙饼的排序
问题:假设有n块大小不一的烙饼,翻烙饼时只能从最上面的烙饼开始,一次抓住最上面的几块饼,把它们上下颠倒个儿,那么最少要翻多少次,才能够达到最后的大小有序?思路先上一张图,可以很好的说明思路: 假设有四张无序的饼,那么问题就变成了找到使层数最小的结点。书中给出的思路是: 将烙饼从第二张开始一个一个的尝试去翻,采用深度优先搜索的策略。在搜索开始之前,先找到了一种完成任务的方式,最少需要2*(n_原创 2015-05-25 15:41:52 · 1458 阅读 · 0 评论 -
C++中的内存分配的问题
C++中类和结构体的对象声明有两种方式: 直接声明的方式: Node nodes;这种方式声明的变量nodes是创建在栈区的。由系统自动回收。 使用new的方式: Node *nodes=new Node;这种方式是创建在堆区的,是要程序员自己申请管理,系统不会自动回收。需要使用delete回收。下面看一段程序:int main() { //create Linklist Node原创 2016-02-27 12:17:41 · 487 阅读 · 0 评论 -
单链表及在其上的操作实现
单链表作为一种常见的数据结构,在程序设计中很重要。我也是在最近参加的一些面试,感觉好多公司在技术面试时都会问一些单链表的问题,在此进行一下总结。 首先建立单链表的基本数据单元: typedef struct Node { int data; Node *next; }Node; 声明单链表的类,将单链表的相关操作均封装到该类中,后续的单链表操作方法还会继续更新,下面得1声明在LinkLi原创 2015-03-21 22:51:42 · 554 阅读 · 0 评论