C
晓锋残月
这个作者很懒,什么都没留下…
展开
-
数据结构——堆栈和队列
堆栈和队列都是特殊的线性表,线性表、堆栈和队列三者的数据元素以及数据元素之间的逻辑关系完全相同。 差别:线性表的插入和删除操作不受任何限制,而堆栈只能在栈顶插入和删除,队列只能在队尾插入,在对头删除。1.堆栈(先进后出,或后进先出线性表)几个专业术语解释: 栈顶:堆栈中允许进行插入和删除数据元素操作的一端称为栈顶 栈底:栈顶的另外一端 栈顶指示器(或栈顶指针):栈顶的当前原创 2016-04-04 08:39:26 · 1044 阅读 · 0 评论 -
数据结构——循环单链表和双向链表
1.循环单链表1.循环单链表特点: 链表中最后一个结点的指针域不再是结束标志,而是指向整个链表的第一个结点,从而使链表形成一个环。和单链表相同,循环单链表也有带头结点和不带头结点两种。带头结点的循环单链表实现插入和删除操作较为方便,且更加适用。2. 单链表与循环单链表比较: 循环单链表可以从尾到头,而单链表不能从尾到头。因此处理的数据序列具有环形结构特点时,适合采用循环单链表。3.原创 2016-03-25 21:57:39 · 6768 阅读 · 0 评论 -
算法——算术表达式计算问题(堆栈典型应用)
1.中缀表达式和后缀表达式的描述在编译系统中,算术表达式可以分为三类:算术表达式,关系表达式,逻辑表达式。任何一个算术表达式都是由:操作数,运算符和分界符组成。我们把操作数,运算符和分界符(分界符标志了一个算术表达式的结束)称为一个算术表达式的单词中缀表达式:算术表达式中的运算符总是出现在两个操作数之间(除单目运算符外) A+(B-C/D)*E后缀表达式:表达式中的运算符出现在操作数之后。编译原创 2016-04-09 17:06:15 · 5950 阅读 · 0 评论 -
二叉树递归非递归遍历(递归前中后,非递归前中后,层次遍历,凹入打印法等)
由于所有的递归算法都可以借助于堆栈转换成循环结构的非递归算法。方法一:形式化模拟转换。方法二:根据要求解问题的特点设计借助于堆栈的循环结构算法。而此次正好是利用第二种按方法求解。1.1非递归前序遍历:首先利用下图来设计非递归前序遍历算法思想: 堆栈结构体如下:#define size 100 typedef struct{ DataType data[size]; int原创 2016-05-30 21:28:04 · 5030 阅读 · 3 评论