2013年7月18日

摘要: 不写了,写了这么久没保存,网速太慢了。已知二叉树的前序遍历和中序遍历的结果,重建二叉树。 1 node pre_order[5]={'a','b','d','c','e'}; 2 char in_order[5]= {'d','b','a','e','c'}; 3 node rebuild[5]; 4 void rebuild_tree(char pre_order[],char in_order[],node rebuild[],in 阅读全文
posted @ 2013-07-18 21:09 听雪同学 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目描述:输入一个链表,从尾到头打印链表每个节点的值。每个输入文件仅包含一组测试样例。每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。根据链表的特性,查找其中某一个结点的时间复杂度是O(n)。 遍历链表的时候,将遍历的结果存放在一个栈中,遍历结束以后输出栈中的元素值即可。 1 /* 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 */ 8 struct listnode 9 {10... 阅读全文
posted @ 2013-07-18 20:11 听雪同学 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。时间复杂度o(n)的算法先遍历一次字符串统计出空格的总数,计算出替换之后的字符串的总长度。每替换一个空格,长度增加2,因此替换以后字符串的长度等于原来的长度加上2乘以空格数目。考虑从字符串的后面开始复制和替换。设置两个指针,P1和P2。P1指向原始字符串的末尾,而P2指向替换之后的字符串的末尾。向前移动指针P1,逐个把它指向的字符复制到P2指向的位置,直到碰到第一个空格为止。 1 int replace_blank(char a[] 阅读全文
posted @ 2013-07-18 18:38 听雪同学 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。多维数组只是一个逻辑上的概念,内存实质上都是按一维数组存储,对数组排序,然后二分查找。 1 #include 2 int binary_search(int* a,int low,int high,int x) 3 { 4 int mid=0; 5 while(low<=high) 6 { 7 mid=(high+low)/2; 8 if(x==a[mid]) 9 ... 阅读全文
posted @ 2013-07-18 16:52 听雪同学 阅读(144) 评论(0) 推荐(0) 编辑

导航