软考中级习题与解答——第十五章_数据结构与算法应用(1)
例题1
答案解析
(1) EnQueue( &tempQ, root )
&tempQ
的含义
tempQ:这是一个队列变量
&:在 C 语言中表示“取地址”,即获取变量的内存地址
&tempQ:整体意思是“tempQ 队列的地址”
EnQueue
函数需要接收一个队列指针作为参数,而不是队列本身。使用 &tempQ
就是把 tempQ
这个队列的地址传递给函数。
将树的根节点 root
加入到队列 tempQ
中
开始遍历的第一步骤
(2) brotherptr = brotherptr->nextbrother
将兄弟指针移动到下一个兄弟节点
用于遍历当前节点的所有兄弟节点
(3) !lsEmpty( tempQ )
检查队列
tempQ
是否为空这是层次遍历的循环条件
(4) DeQueue( &tempQ, &ptr )
从队列中取出一个节点,保存在
ptr
中处理当前层次的节点
(5) !ptr->firstchild
访问当前节点
ptr
的第一个孩子节点
(6) EnQueue( &tempQ, ptr->firstchild )
将当前节点的第一个孩子加入队列
准备遍历下一层节点
(7) brotherptr = brotherptr->nextbrother
再次移动兄弟指针,继续遍历兄弟节点