
数据结构笔记
文章平均质量分 50
ZIV555
GPU水声信号处理,电路设计
展开
-
迭代和递归的区别
迭代使用的是循环结构,递归使用的是选择结构,递归能使程序的结构更加清晰、更简洁、更容易让人理解,从而减少读懂代码的时间。但是大量的递归调用会建立函数的副本,会耗费大的时间和内存。因此我们应该视不同的情况选择不同的代码实现。递归过程退回的顺序是它前行顺序的逆序,在后面以存储的逆序恢复这些数据,比较符合栈的数据结构。原创 2016-05-20 10:20:35 · 603 阅读 · 0 评论 -
四则运算——中缀表达式转后缀表达式
后缀(逆波兰)规则:从左向右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于栈顶符号(乘除优先于加减)则栈顶元素依次出栈并输出,并将当前符号进栈,直到最终输出后缀表达式为止。最重要的两步:1、将中缀表达式转化成后缀表达式(栈用来进出运算的符号);2、将后缀表达式进行运算得出结果(栈用来进出运原创 2016-05-20 11:27:46 · 1167 阅读 · 0 评论 -
STL容器
1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问4.stack 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时5.queu原创 2016-06-24 22:50:04 · 436 阅读 · 0 评论 -
三角形个数的问题
如题:当边长为1时,有1个三角形;边长为2时,有5个三角形;边长为3时,有13个三角形;边长为4时,有27个三角形;那么边长为n时,有多少个三角形?乍一看 ,当时没有总结出规律,后来将其分解,有规律了边长为1 边长为1的三角形1个;边长为2 边长为1的三角形2*2个 边长为2的三角形2*1-1个边长为3 边长为1的三角形3*3个 边长为原创 2016-06-08 22:48:41 · 5097 阅读 · 0 评论 -
堆栈与队列的区别整理
理论:共同特点:栈:是限制在表的一端进行插入和删除运算的线性表。栈又称后进先出简称:LIFO表队列:也是一种运算受限的线性表。它只允许在标的一端进行插入,而在另一端进行删除。队列亦称:先进先出FIFO表不同点:队列是先进先出:就像一条路,有一个入口和一个出口,先进去的就可以先出去。而栈就像一个箱子,后放的在上边,所以后进先出。进程中每个线程都有自己的堆转载 2016-05-23 09:07:32 · 13042 阅读 · 0 评论