2017年4月24日
摘要: 题目描述: 如下为类型CMyString的声明,请为该类型添加赋值运算符函数 class CMyString{ public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); priv 阅读全文
posted @ 2017-04-24 17:03 Bill_LHR 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从>上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整>数,判断数组中是否含有该整数。 分析: 显而易见,最简单的、最容易先想到的方法就是遍历数组了,然而O(n^2)的时间复杂度不是题目想要的,也不是我们 阅读全文
posted @ 2017-04-24 13:36 Bill_LHR 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析: 首先,还是想到简单、原始的方法,从头到尾扫描字符串,遇到每遇到一次空 格,先将空格之后的所有元素移动两个字节,然后将空格替换 阅读全文
posted @ 2017-04-24 13:34 Bill_LHR 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个链表的头结点,从尾到头打印链表每个节点的值。 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ 分析 阅读全文
posted @ 2017-04-24 13:32 Bill_LHR 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解法分析: 首先题目要求用两个栈实现一个队列,那么就要先分析为什么这么做。队列的特点就像排队的“先到先得”一样,即先入队的就先出队;而栈则正好相反,特点是“后进先出”,那么问题来了怎么用“后进先出”的得 阅读全文
posted @ 2017-04-24 13:27 Bill_LHR 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 单链表的节点定义 struct ListNode{ int m_nValue; ListNode* m_pNext; }; 在单链表的末尾添加结点 void AddToTail(LIstNode** pHead,int value) { ListNode* pNew = new ListNode() 阅读全文
posted @ 2017-04-24 13:22 Bill_LHR 阅读(4331) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第一个结点。例如一个链表有6个结点,从头结点开始它们依次是1、2、3、4、5、6。这个链表的倒数第三个结点是值为4的结点。结点定义如下: struct ListNode{ int m_ 阅读全文
posted @ 2017-04-24 13:13 Bill_LHR 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。链表结点的定义如下: struct ListNode{ int m_nValue; ListNode* m_pNext; }; 分析: 老规矩,先考虑最简单粗暴的方法,既然是要删除结点,那么按照之前在数据结构中总结 阅读全文
posted @ 2017-04-24 13:13 Bill_LHR 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 二叉树的遍历包括:先序遍历、中序遍历和后序遍历。其实现的基本思想就是利用递归的方式,以先序遍历为例,首先访问根结点,然后依次分别对它的左子树和右子树进行先序遍历。接下来直接贴实现代码,假设二叉树的结点中存储的是一个整型数据,对二叉树分别进行先、中、后序遍历,依次打印出不同遍历方式下得到的整数序列。 阅读全文
posted @ 2017-04-24 13:12 Bill_LHR 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下: struct ListNode{ int m_nKey; ListNode* m_pNext; } 分析: 这个问题看起来与之前做的从尾到头打印链表看起来很相似,都是链表的“逆序”。但不同的是,这 阅读全文
posted @ 2017-04-24 13:12 Bill_LHR 阅读(177) 评论(0) 推荐(0) 编辑