数据结构
樱桃小方子
这个作者很懒,什么都没留下…
展开
-
求集合全排列算法(递归)
问题描述给定一个集合(a1,a2,a3,…,an),求该集合的所有排列。如集合(1,2,3)的所有排列为(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)。思路可以发现,得到集合全排列的思想为求a1+(a2,a3,…,an)的全排列,而a1可以与集合中的n个元素进行交换,同理,(a2,a3,…,an)的全排列等于a2+(a3,a4,…,a...原创 2018-04-15 11:28:37 · 1606 阅读 · 3 评论 -
循环队列实现K阶斐波那契数列求值
概述K阶斐波那契数列:数列第1项到第k-1项为0,第k项为1,之后从第(k+1)项开始每一项为前k项之和。循环队列定义结构体中front指示队头位置,rear指示队尾位置,初始空队时Q->front = Q->rear = 0,队满时(Q->rear + 1) % Q->k = Q->front,即头尾指针指向同一位置。若队列未满时,新元素入队将尾指针后移...原创 2018-04-03 23:22:15 · 4656 阅读 · 1 评论 -
求逆波兰表达式
概述逆波兰表达式即后缀表达式,即将每一运算符都置于其运算对象之后。逆波兰表达式是一种十分有用的表达式,它将复杂表达式转换为可以依靠简单的操作得到计算结果的表达式。例如(a+b)*(c+d)转换为ab+cd+。思路首先定义一个栈和一个队列,栈用于储存运算符,队列用于储存逆波兰表达式。读取字符时,若遇操作数直接加入队列,遇左括号直接压栈,遇右括号则将距离栈顶最近的左括号之间的运算符加入...原创 2018-04-03 23:45:32 · 566 阅读 · 0 评论