每日编程Day 6如何实现树的层次遍历?

2026-04-11 22:400阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计778个文字,预计阅读时间需要4分钟。

每日编程Day 6如何实现树的层次遍历?

二叉树采用二叉链表进行存储(如下所示),每个节点包含数据域Data,以及左右子指针域left和right。

请设计非递归算法计算二叉树的高度。

ctypedef struct BitNode { TElemType data; struct BitNode *left; struct BitNode *right;} BitNode;

int calculateHeight(BitNode *root) { if (root==NULL) return 0;

int height=0; int queue[1000]; // 使用数组模拟队列 int front=0, rear=0; queue[rear++]=root; // 初始化队列

while (front

for (int i=0; i left !=NULL) queue[rear++]=node->left; if (node->right !=NULL) queue[rear++]=node->right; }

levelHeight++; height=levelHeight > height ? levelHeight : height; }

return height;}

二叉树采用二叉链表进行存储(如下所示),每个结点包含数据域Data,左孩子指针域left和右孩子指针域right。

阅读全文

本文共计778个文字,预计阅读时间需要4分钟。

每日编程Day 6如何实现树的层次遍历?

二叉树采用二叉链表进行存储(如下所示),每个节点包含数据域Data,以及左右子指针域left和right。

请设计非递归算法计算二叉树的高度。

ctypedef struct BitNode { TElemType data; struct BitNode *left; struct BitNode *right;} BitNode;

int calculateHeight(BitNode *root) { if (root==NULL) return 0;

int height=0; int queue[1000]; // 使用数组模拟队列 int front=0, rear=0; queue[rear++]=root; // 初始化队列

while (front

for (int i=0; i left !=NULL) queue[rear++]=node->left; if (node->right !=NULL) queue[rear++]=node->right; }

levelHeight++; height=levelHeight > height ? levelHeight : height; }

return height;}

二叉树采用二叉链表进行存储(如下所示),每个结点包含数据域Data,左孩子指针域left和右孩子指针域right。

阅读全文