摘要: 题目:输入两棵二叉树A和B,判断B是不是A的子结构分析:根据数的遍历方法,首先想到的是采用递归的方式要更简单些,树A从根节点进行遍历,首先判断与B的根节点值是否相等,如果相等则进行递归遍历验证,否则验证树A的其他节点,直到所有的结点遍历完。注意的就是指针是否为NULL,因为自己编程能力不好,所以有些... 阅读全文
posted @ 2014-06-09 20:27 menghuizuotian 阅读(1047) 评论(0) 推荐(0)
摘要: 题目:输入一个链表,输出改链表倒数第K个结点。分析:常规方法可能就是,先遍历一遍链表,找到链表长度length,那么我们只需要第二次遍历length-k+1个结点就可以找到倒数第k个结点。 比较好的方法是采用两个指针,让一个指针先走K-1步,后面的指针再跟上。这样只需要遍历一遍。注意:1.提高... 阅读全文
posted @ 2014-06-09 12:23 menghuizuotian 阅读(151) 评论(0) 推荐(0)
摘要: 1.维护两个指针,一个指向第一个 ,向右移动,一个指向最后一个元素,向左移动。当第一个指针指向为偶数,第二个为奇数,就进行交换并移动指针。 注意:当输入为Null或者length=0时候的情况。#include "stdafx.h"#include using namespace std;void ... 阅读全文
posted @ 2014-06-08 22:40 menghuizuotian 阅读(167) 评论(0) 推荐(0)
摘要: 这题并不需要从头结点遍历到已知结点,只需要知道已知结点,将改结点下一个结点赋值给它,再删除这个下一个结点就行,其中还需要考虑各种情况。1)链表为空或者已知结点为空2)链表只有一个结点,这个结点就是要删除的已知结点3)要删除的已知结点在链表的末尾,此时就不能将下一个结点复制过去,我们就需要采用传统方法... 阅读全文
posted @ 2014-06-08 21:16 menghuizuotian 阅读(269) 评论(0) 推荐(0)
摘要: 首先这一题会溢出,要考虑的大数问题。所以不能用简单的是int类型数来表示(32位无符号int 范围是0x00000000···0xFFFFFFFF),下面主要是非递归的实现代码,自己做了注释方便以后回顾。#include "stdafx.h"#include using namespace std;... 阅读全文
posted @ 2014-06-08 18:48 menghuizuotian 阅读(280) 评论(0) 推荐(0)
摘要: 选择排序直接选择排序:选择排序,每一趟找到一个最小(大)值,每一趟遍历的数据减少一次。typedef int T;void SelectSort(T a[],int length){ for (int i=0;i0;i--) { shift(a,i,n); ... 阅读全文
posted @ 2014-06-07 16:28 menghuizuotian 阅读(250) 评论(0) 推荐(0)
摘要: 以下算法都编译通过,具体原理相信大家都懂,直接上代码。内部排序方法若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排序和基数排序。其中,插入排序主要包括直接插入排序和希尔排序两种;选择排序主要包括... 阅读全文
posted @ 2014-06-06 22:12 menghuizuotian 阅读(371) 评论(2) 推荐(0)
摘要: 参考:http://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html1.方法1(基本方法)这个时候把s2当做是一个缓冲栈。入队:将数据压入栈s1.出队:将栈s1中的数据弹出,再压入栈s2中,出栈的时候,弹出s2栈顶的数据。接... 阅读全文
posted @ 2014-06-06 20:26 menghuizuotian 阅读(280) 评论(0) 推荐(0)
摘要: 具体模板类作用这边就不细说了,下面主要是描述下模板类的使用方法以及注意的一些东西。#include using namespace std;template //定义类模板class Compare{ public : Compare(numtype a,numtype b) {x=a... 阅读全文
posted @ 2014-06-06 18:07 menghuizuotian 阅读(626) 评论(1) 推荐(1)
摘要: 根据先序遍历和中序遍历的特点,我们想到了采用递归的方法来实现。思路:1) 代码的容错性检查,比如:先序遍历和中序遍历长度应相等 2) 先保存先序遍历的第一个点,这个点为结点,接下来循环中序遍历,直到midOrd[index]=该结点,那么接下来就可以采用递归,分别对结点左边和右边的序列采用相同的方法... 阅读全文
posted @ 2014-06-06 13:14 menghuizuotian 阅读(388) 评论(0) 推荐(0)