1、首先第一步若节点右左子树,则左链域lchild指示其左孩子(ltag=0),否则,令左链域指示其前驱(ltag=1)。若结点有右子树,则右链域rchild指示其右孩子(rtag=0),否则,令右链域指示其后继(rtag=1)。
2、然后击亅实现这一过程,设指针p指向当前结点,pre始终指向刚刚访问过的结点,即p的前驱,以便于修改pre的后继线索和p的前驱线索。在线索化算法中访问当前结点p来进行处理。
3、最后几是结点p的左指针域为空,则将其标志位置为1,并使p->lchild指向中序前驱结点pre(即左线索化);结点pre的右指针域为空,则将其标志位置为1,并使pre->rchild指向中序后继结点p(即右线索化);将pre指向刚刚访问过的结点p(即pre=p),线索化p的右子树。
扩展资料:
设G=(V,E)是一个图,其中V={v1,v2,…,vn}。G的邻接矩阵是一个具有下列性质的n阶方阵:
对无向图而言,邻接矩阵一定是对称的,而且主对角线一定为零(在此仅讨论无向简单图),副对角线不一定为0,有向图则不一定如此。
在无向图中,任一顶点i的度为第i列(或第i行)所有非零元素的个数,在有向图中顶点i的出度为第i行所有非零元素的个数,而入度为第i列所有非零元素的个数。
答案请看图。
追问可以讲一下思路嘛
追答广度:
访问一个节点,然后把与该节点邻接的节点全部访问完,再依次访问上一步中访问的邻接节点的全部节点。
访问节点 1,然后访问与节点 1 邻接的全部节点,即 2、3、4,然后再依次访问 2、3、4 邻接的节点,先访问 2 邻接的节点 5,全部节点已访问,结束。假设还有个节点 6 只与 3 邻接,那在访问完 2 邻接的全部节点后,还需访问与 3 邻接的节点 6。
深度:
访问一个节点,如果该节点有未访问的邻接节点,则访问与该节点邻接的一个节点,否则任选一个未访问的节点访问。然后再访问一个与上一步中访问的节点邻接的节点。
访问节点1,然后访问与节点1邻接的节点2,然后访问与节点2邻接的节点3,然后访问与节点3邻接的节点4,然后访问与节点4邻接的节点5。