摘要:
这两天在复习数据结构部分的内容,之前考研的时候对数据结构的理解感觉不深,因为只是考研专业课要考数据结构,所以就单独看了数据结构的书,做了各种题,记了各种添加、删除、遍历等等。 那数据结构到底是什么? 百度百科:数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数 阅读全文
摘要:
题目描述: 如下为类型CMyString的声明,请为该类型添加赋值运算符函数 class CMyString{ public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); priv 阅读全文
摘要:
题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从>上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整>数,判断数组中是否含有该整数。 分析: 显而易见,最简单的、最容易先想到的方法就是遍历数组了,然而O(n^2)的时间复杂度不是题目想要的,也不是我们 阅读全文
摘要:
题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析: 首先,还是想到简单、原始的方法,从头到尾扫描字符串,遇到每遇到一次空 格,先将空格之后的所有元素移动两个字节,然后将空格替换 阅读全文
摘要:
题目描述: 输入一个链表的头结点,从尾到头打印链表每个节点的值。 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ 分析 阅读全文
摘要:
问题描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解法分析: 首先题目要求用两个栈实现一个队列,那么就要先分析为什么这么做。队列的特点就像排队的“先到先得”一样,即先入队的就先出队;而栈则正好相反,特点是“后进先出”,那么问题来了怎么用“后进先出”的得 阅读全文
摘要:
单链表的节点定义 struct ListNode{ int m_nValue; ListNode* m_pNext; }; 在单链表的末尾添加结点 void AddToTail(LIstNode** pHead,int value) { ListNode* pNew = new ListNode() 阅读全文
摘要:
问题描述: 输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第一个结点。例如一个链表有6个结点,从头结点开始它们依次是1、2、3、4、5、6。这个链表的倒数第三个结点是值为4的结点。结点定义如下: struct ListNode{ int m_ 阅读全文
摘要:
问题描述: 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。链表结点的定义如下: struct ListNode{ int m_nValue; ListNode* m_pNext; }; 分析: 老规矩,先考虑最简单粗暴的方法,既然是要删除结点,那么按照之前在数据结构中总结 阅读全文
摘要:
二叉树的遍历包括:先序遍历、中序遍历和后序遍历。其实现的基本思想就是利用递归的方式,以先序遍历为例,首先访问根结点,然后依次分别对它的左子树和右子树进行先序遍历。接下来直接贴实现代码,假设二叉树的结点中存储的是一个整型数据,对二叉树分别进行先、中、后序遍历,依次打印出不同遍历方式下得到的整数序列。 阅读全文
摘要:
问题描述: 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下: struct ListNode{ int m_nKey; ListNode* m_pNext; } 分析: 这个问题看起来与之前做的从尾到头打印链表看起来很相似,都是链表的“逆序”。但不同的是,这 阅读全文
摘要:
二叉树的定义 1)每个节点最多只有两颗子树,即二叉树中结点的度只能为0、1、2; 2)子树有左右之分,不能颠倒。 二叉树的五种基本状态: 1)空二叉树 2)只有根节点 3)只有左子树,右子树为空 4)只有右子树,左子树为空 5)既有左子树,又有右子树 满二叉树: 所有的分支结点都有左孩子和右孩子结点 阅读全文
摘要:
树的基本术语 结点: 结点不仅包含数据元素,而且包含指向子树的分支。 结点的度: 结点拥有的子树的个数或者分支的个数。 树的度: 树中各结点度的最大值。 叶子结点: 又叫终端结点,指度为0的结点。 非终端结点: 又叫分支结点,指度不为0的点。 子结点: 指结点的子树的根。 双亲结点: 与孩子结点的定 阅读全文