21xrx.com
2024-11-10 00:53:16 Sunday
登录
文章检索 我的文章 写文章
C++中的遍历操作
2023-07-05 02:43:44 深夜i     --     --
C++ 遍历 操作 循环 迭代

在C++中,遍历操作是指对数据结构中的元素进行逐个访问的操作。C++中的遍历操作包括数组遍历、链表遍历、树遍历等。

数组遍历是最简单的遍历操作。可以使用for循环结合数组的下标来遍历数组元素。例如:


int arr[] = 4;

for (int i = 0; i < 5; i++) {

  cout << arr[i] << " ";

}

链表遍历需要使用while循环,因为链表并没有固定的长度。遍历过程中要注意判断指针是否为空。例如:


struct ListNode {

  int val;

  ListNode* next;

  ListNode(int x) : val(x), next(NULL) {}

};

ListNode* head = new ListNode(1);

head->next = new ListNode(2);

head->next->next = new ListNode(3);

ListNode* cur = head;

while (cur != NULL)

  cout << cur->val << " ";

  cur = cur->next;

树遍历包括前序遍历、中序遍历和后序遍历三种方式。前序遍历是先访问根节点,然后访问左子树,最后访问右子树。中序遍历是先访问左子树,然后访问根节点,最后访问右子树。后序遍历是先访问左子树,然后访问右子树,最后访问根节点。例如:


struct TreeNode {

  int val;

  TreeNode* left;

  TreeNode* right;

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

};

void preOrder(TreeNode* root) {

  if (root != NULL) {

    cout << root->val << " ";

    preOrder(root->left);

    preOrder(root->right);

  }

}

void inOrder(TreeNode* root) {

  if (root != NULL) {

    inOrder(root->left);

    cout << root->val << " ";

    inOrder(root->right);

  }

}

void postOrder(TreeNode* root) {

  if (root != NULL) {

    postOrder(root->left);

    postOrder(root->right);

    cout << root->val << " ";

  }

}

对于复杂的数据结构,遍历操作能够方便地访问其中的元素,是C++程序设计中不可或缺的一部分。掌握不同数据结构的遍历方法能够有效地提高程序的效率。

  
  
下一篇: C++编译器

评论区

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