随笔分类 -  剑指offer C语言

剑指offer问题C语言的实现
摘要:首先要清楚栈和队列的数据接口和各自的特点,栈:FILO,队列FIFO,运用俩个栈,栈1FILO,再将数据存入栈2又是FILO,因而从整体输入来看,在栈2中表现为FIFO主要思想如下:(1)在队列中定义俩个栈stack1,stcak2,stack1用于做队列数据存入栈,stack2做队列数据输出栈(2... 阅读全文
posted @ 2015-04-07 15:22 Android茶话会 阅读(154) 评论(0) 推荐(0)
摘要:思路:(1)需要了解前序遍历和和中序遍历的特点,前序遍历第一个元素即为根节点,然后再在中序遍历以这个根节点为界限得到宏观上的左子串和右子串,如下图(2)又可以将截取的子串分为新的子串问题,从而可以通过迭代来解决,(3)构建左子树:主要就是指针的运用,获取前序遍历左子串的起始地址和子串长度,中序遍历左... 阅读全文
posted @ 2015-04-05 19:57 Android茶话会 阅读(172) 评论(0) 推荐(0)
摘要:思路:利用栈的来实现,而递归本质上就是一个栈结构 1 #include 2 #include 3 4 /* 5 剑指offer 6 Pro5 反转链表输出 7 xsfelvis 8 */ 9 //定义链表的结构类型10 typedef struct LNode11 {12 int da... 阅读全文
posted @ 2015-04-05 19:42 Android茶话会 阅读(257) 评论(0) 推荐(0)
摘要:本题最大的困难是如何在不新建新的数组下完成空格替换,主要考察数组指针的运用思路:(1)找出字符串空格的长度,从而确定新的子串尾指针的位置所在; (2)通过遍历找出空格,string[indexOfNew--]依次附上%20三个字符,indexOfOriginal--注:并没有通过实际指针而是通过字符... 阅读全文
posted @ 2015-04-05 19:39 Android茶话会 阅读(162) 评论(0) 推荐(0)
摘要:剑指offer面试题三:关键在于这个二维数组比较特殊,都是按照排序后的摆放,因而在查找时可以采取从右上角开始一层层的剥离,节省查找时间代码如下: 1 #include 2 #define True 1 3 #define False 0 4 /** 5 *二维数组找到 6 */ 7 int Find... 阅读全文
posted @ 2015-04-05 19:27 Android茶话会 阅读(261) 评论(0) 推荐(1)