摘要:
未完待续~ 阅读全文
摘要:
根节点没有父节点,其他每个结点只有一个父节点; 叶节点没有子节点,其他每个结点都有一个或多个子节点; 二叉树:每个结点最多只能有两个子结点。遍历方式有三种:前序(根-左-右)、中序(左-根-右)、后序(左-右-根); 二叉排序树:对于每个结点,左子树所有结点 < 根结点,根结点 < 右子树所有结点; 阅读全文
摘要:
先进先出,只能在队尾插入,队首删除 应用领域:两个队列实现栈、树的BFS(宽度优先遍历); 用两个队列实现一个栈(剑指offer 面试题7习题) 题目:用两个队列实现一个栈。栈的声明如下:请实现它的两个函数push和pop,分别完成在入栈和出栈的功能; 解题思路: 一个非空队列和一个空队列; (1) 阅读全文
摘要:
栈只能在顶端插入或删除元素,它的特点是先进后出。 应用领域:操作系统会为每个线程创建一个栈用来存储函数调用时的各个函数的参数、返回值及临时变量。 用两个栈实现队列(剑指offer 面试题7) 题目:用两个栈实现一个队列。队列的声明如下:请实现它的两个函数push和pop,分别完成入队和出队的功能; 阅读全文
摘要:
由指针把若干个结点连接成链状结构。它是一种动态结构,因为在创建链表时无须知道链表长度。 插入一个结点时只需要为新结点分配内存,然后调整指针的指向即可。 如果链表的头指针会有更改,那么参数应该设为指向指针的指针,即ListNode **pHead。 优点:空间效率高,因为是每添加一个结点才分配一次内存 阅读全文
摘要:
字符串是有若干字符组成的序列,C/C++中每个字符串都以'\0'作为结尾,这样就很容易找到字符串的最后尾部,但是需要一个额外字符的开销,容易造成越界; 常量字符串是在一块单独的只读的内存区域,其内容不可更改; 替换空格(剑指offer 面试题4) 题目:请实现一个函数,把字符串中的每个空格替换成“% 阅读全文
摘要:
连续内存且顺序存储,在创建数组时必须指定容量大小; 优点:时间效率高,即查找效率高O(1),而且可以实现简单的哈希表; 缺点:空间效率低,即使只存储一个数据也要为所有数据分配空间,而且插入和删除效率低O(n); 二维数组的查找(剑指offer 面试题3) 题目:在一个二维数组中,每一行都按照从左到右 阅读全文