算法模块
文章平均质量分 89
我们都曾拥有最美的时光
https://github.com/Soulghost
展开
-
(一)循环队列
队列可以使用数组或者链表实现,这里介绍一种使用数组实现的循环队列。所谓循环队列,是指当尾指针超过数组索引界限时,通过取余运算返回数组起始端,只要保证尾指针和头指针不相遇,就可以继续存储元素。首先设定队列的大小,并建立队列结构体:#define MAXSIZE 100001typedef struct { int items[MAXSIZE]; int front; int r原创 2015-03-05 22:55:41 · 1276 阅读 · 0 评论 -
双队列实现队列中元素排序
题目要求对一个队列中的元素进行排序,只允许使用一个临时队列,不能进行除去入队、出队、判空以外的任何操作。实现方法为每次遍历队列,从中找出最小的元素,放入临时队列,遍历的过程是出队的过程,注意如果一个元素比当前的最小值大,则要放回队列当中,如果比当前的最小值小,则保存起来,暂时不放回队列中,发现更小的,把原来的最小值放入,更新最小值,在遍历完一次以后,将最小值存入临时队列。然后开始第二次原创 2015-03-05 22:57:49 · 3904 阅读 · 1 评论 -
(二)二叉树的还原和遍历
二叉树的遍历有先序、中序、后序遍历三种,已知中序和另外一种即可得到完整且唯一的二叉树。本文通过递归的方法,通过先序和中序序列得到原来的二叉树。还原的原理很简单,先序序列的每个结点都可以看作根结点,并且是根、左、右的顺序,而中序遍历的顺序为左、根、右,因此根据先序序列可以定位中序中的根结点,并且在这个根结点左侧的为左子树,右侧为右子树。接下来可以按照当前根结点向左递归生成左子树,原创 2015-03-06 13:42:06 · 789 阅读 · 0 评论 -
1039. Course List for Student (25)
题目如下:Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered course list for each stude原创 2015-07-04 17:43:46 · 658 阅读 · 0 评论