- 博客(4)
- 资源 (3)
- 收藏
- 关注
原创 fork的简析
#include #include #include int main() { pid_t pid1; pid_t pid2; pid1 = fork(); pid2 = fork(); printf("pid1:%d, pid2:%d\n", pid1, pid2); } 输出: pid1:3411, pid2:3412 pid1:0,
2013-11-28 20:58:11 908
转载 二叉树的二叉链表表示与实现
二叉树的特点是每个结点至多只有两棵子树,且二叉树有左右字子树之分,次序不能任意颠倒。 二叉树的存储结构可以用顺序存储和链式存储来存储。二叉树的顺序存储结构由一组连续的存储单元依次从上到下,从左到右存储完全二叉树的结点元素。对于一般二叉树,应将其与完全二叉树对应,然后给每个结点从1到i编上号,依次存储在大小为i-1的数组中。这种方法只适用于完全二叉树,对非完全二叉树会浪费较多空间,最坏情况一个深度
2013-11-08 19:33:26 1115
转载 二叉树遍历非递归实现
遍历是二叉树各种操作的基础,上一节给出的遍历算法是递归实现的,本节给出二叉树遍历的非递归实现,非递归实现需要使用前面讲到的数据结构——栈、队列来作为辅助空间。 先序遍历 [cpp] view plaincopy int preorder_traverse(bitree bt, int (*visit)(elemtype e)) { sqstack
2013-11-08 19:27:54 799
转载 二叉树的线索化
在二叉树的二叉链表表示实现的时候,当以二叉树作为存储结构时,只能找到节点的左右孩子信息,不能直接得到结点在任一序列中的前驱和后继信息,只有在遍历过程中才能得到这种信息。我们知道,在n个结点的二叉链表栈必定存在n+1个空链域,因此,可以利用这些空链域来存放这些结点信息。所以作如下规定:若结点右左子树,则其lchild域指向其左孩子,否则令lchild域指向其前驱;若结点有右子树,其rchild域指向
2013-11-08 18:35:31 889
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人