21xrx.com
2024-11-05 17:30:29 Tuesday
登录
文章检索 我的文章 写文章
C++ 树数据结构
2023-06-29 21:23:37 深夜i     --     --
C++ 数据结构

C++ 树数据结构是计算机科学中非常常见的一种数据结构。它的用途十分广泛,常见于各种算法和程序设计中。树结构的基本概念是建立在一组节点之上的,这些节点之间的关系形成了一种层次结构,顶层的节点称为根节点,每个节点可以有零个或多个子节点。

在C++中,我们可以使用指针来表示树的结构。每个节点都包含了一些数据和指向它的子节点的指针。如下面的代码所示,它定义了一个表示树节点的结构体:


struct TreeNode {

  int val;

  TreeNode* left;

  TreeNode* right;

  TreeNode(int x) : val(x), left(NULL), right(NULL) {}

};

其中,val 是节点存储的数据,left 和 right 是分别指向它的左右子节点的指针。

使用此结构体,我们可以实现各种不同类型的树结构,包括二叉树、红黑树、B树等等。其中,二叉树最为常见,它的每个节点最多只有两个子节点,分别称为左子树和右子树。

下面的代码是实现二叉树的示例:


class BinaryTree {

public:

  TreeNode* root;

  

  BinaryTree()

    root = NULL;

  

  

  void insert(int val) {

    if(root == NULL) {

      root = new TreeNode(val);

      return;

    }

    TreeNode* cur = root;

    while(true) {

      if(val < cur->val) {

        if(cur->left == NULL) {

          cur->left = new TreeNode(val);

          return;

        }

        cur = cur->left;

      } else {

        if(cur->right == NULL) {

          cur->right = new TreeNode(val);

          return;

        }

        cur = cur->right;

      }

    }

  }

};

这个示例演示了如何创建一个二叉树,并向树中插入新的节点。当插入节点时,程序会在树中遍历,直到找到合适的位置并插入新的节点。

总之,C++ 树数据结构是一种非常重要的数据结构,可以在各种算法和程序设计中广泛使用。掌握树数据结构,对于程序设计和算法设计都是尤为重要的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复