摘要:
也是在做链表题目时,有一道题是用链表结构进行插入排序,因此,对插入排序的数组结构和链表结构做了一个总结,并分析了它们的复杂度。 插入排序:将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增加1的有序表。 1、顺序表的插入排序 关键:有两重循环,第一层循环是遍历所有无序元素,第二层循环是 阅读全文
摘要:
题目: Sort a linked list in O(n log n) time using constant space complexity. 题目解析:要求用链表作为排序的数据结构,时间复杂度为O(nlogn),空间复杂度为O(1)。 分析:首先想到复杂度为O(nlogn)的排序算法有:快排 阅读全文
摘要:
1、二叉树的每个根节点到叶节点的路径代表一个数字,求所有根节点到叶节点所组成数字的和。 sum=12+13=25 2、计算二叉树的最大深度 3、计算二叉树的最小深度 4、二叉树中叶子节点个数 阅读全文
摘要:
最近在做链表算法题时,涉及到了归并排序,索性重新研究一下各种排序方法及其复杂度。 排序中比较复杂一点的是归并排序,思想时比较容易理解的,但是代码写起来没那么容易,该排序方法涉及到了分解和合并两个思想,其实是应用了分治的思想进行排序。 首先是对两个有序序列的合并,注意:合并的前提是:两个数组序列是有序 阅读全文
摘要:
一、前序遍历 前序遍历简单来讲,遍历顺序是:根节点-左子树-右子树 1、递归遍历 2、迭代遍历(用栈实现) 二、中序遍历 遍历顺序是:左子树-根节点-右子树 1、递归遍历 2、迭代遍历(用栈实现) 三、后序遍历 遍历顺序:左子树-右子树-根节点 1、递归遍历 2、迭代遍历(用栈实现) 四、层序遍历 阅读全文
摘要:
一、对二级指针的理解 二级指针,即指向指针的指针。对于二级指针**p,理解如下图: p=0x0001(指p的内容) &p=0x0010(指p自己的地址) *p=q=0x0002(指p指向的地址的内容) **p=*q=str=0x0003(指一级指针p指向地址的内容) 其中,p是二级指针,q是p的一级 阅读全文