- 博客(9)
- 资源 (2)
- 收藏
- 关注
原创 中序遍历二叉树
创建一个二叉树,并实现对二叉树的中序遍历。 这里用两种方法实现对二叉树的中序遍历:第一种方法:递归方法,该方法不需要使用辅助工具栈; 第二种方法:非递归方法,该方法需要使用栈。 下面是具体实现: treenode.h struct Bi
2013-05-28 16:16:10 500
原创 反转单链表
将一个单链表反向。即:让原来的前一结点成为后一结点,原来的头结点成为尾结点,原来的尾结点成为头结点。 listnode.h struct Listnode { int mvalue; Listnode *pnext; }; creatlist.cpp #include #include "listnode.h" using namespace std; Li
2013-05-25 10:27:19 549
翻译 删除单链表中的一个结点
在单向链表中删除一个结点,最常规的方法是从链表的头结点开始,顺序遍历,查找要删除的结点。如果该结点在链表中,则删除该结点。这种情况通常是指明要删除的值,我们要通过比较链表中结点的值与给定的值是否相等来判断链表是否存在该结点。这种方法的时间复杂度是O(n)。 具体分析方法:当要删除的结点是链表的尾结点时,无法用后一结点来覆盖,所以只能采用从头遍历;当要删除的结点不是尾结点时,可
2013-05-25 10:17:20 2421
翻译 顺时针打印矩阵
题目:输入一个矩阵,rows行,columns列,按顺时针方向从外向里一次打印每一个数字。 分析:首先整体分析循环:第一个环的起点是(0,0),第二个环的起点是(1,1)……,依次得出每个环的起点都是行号和列号相等的点,表示为(start,start)。如果一个环的起点start 然后具体分析每个环的打印情况:对每个环,总是要执行从左到右的打印;如果起点start小于该环的行终结号,则需要打印
2013-05-23 10:19:01 547
原创 快速排序算法
用两种方法实现快速排序算法: 第一种方法,函数的形参为数组名和数组的首尾; 第二种方法,函数的形参为数组名和数组长度。 这两种方法实质都差不多,就看对形参的要求了。采用递归的方式实现对数组的排序! 重点要理解算法的思想! #include using namespace std; void quicksort(int data[],int low,int high); //voi
2013-05-16 20:36:50 465
翻译 单链表的逆序输出
/*单链表的顺序输出,即从头结点开始,一次后移,输出;单链表的逆序输出,可先将其结点从头结点开始一次入栈,再从栈顶开始,依次出栈即可*/ //先创建链表结点的结构体 链表结点.h structListNode { intvalue; ListNode *next; }; #include #include #include
2013-05-16 09:28:44 726
原创 用两个队列实现一个栈
以队列中元素为int型为例,用两个队列实现一个栈的功能 #include #include using namespace std; class CStack { public: CStack() {}; ~CStack() {}; void appendHead(const int node); int deleteTail(); private: queu
2013-05-15 22:23:27 477
原创 两个栈实现一个队列
#include #include using namespace std; template class Queue { public: Queue() {}; ~Queue() {}; void appendTail(const T &node); T deleteHead(); private: stack stack1; stack sta
2013-05-10 16:19:09 495
翻译 二维数组查找
一个二维数组的每一行都按从左到右的顺序递增,每一列都按从上到下的顺序递增,在该数组中查找一个数。 #include usingnamespacestd; bool find(int*matrix,introws,intcolumns,int number); int main() { inta[4][4]={0}; inti,j;
2013-05-09 08:55:46 418
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人