C++数据结构详解:数组、链表、栈、队列、树

为了帮助您更好地理解数据结构的概念,本文将用C++编程语言举例解释五种常见数据结构:

1. 数组:

数组是一种存储相同数据类型元素的线性数据结构,可以通过索引访问元素。cppint arr[5] = {1, 2, 3, 4, 5}; // 声明一个包含5个整数的数组arrcout << arr[0]; // 输出数组的第一个元素,结果为1

2. 链表:

链表是一种线性数据结构,其中每个元素(节点)都包含数据和指向下一个节点的指针。cppstruct Node { int data; Node* next;};

Node* head = new Node(); // 创建链表的头节点head->data = 1; // 设置头节点的值为1

Node* second = new Node(); // 创建第二个节点second->data = 2;head->next = second; // 将第二个节点连接到头节点后面

// 遍历链表并输出每个节点的值Node* current = head;while (current != nullptr) { cout << current->data << ' '; current = current->next;}

3. 栈:

栈是一种遵循LIFO(后进先出)原则的线性数据结构。cpp#include

stack st; // 声明一个整数栈

st.push(1); // 将元素1推入栈顶st.push(2); // 将元素2推入栈顶

cout << st.top(); // 输出栈顶元素,结果为2st.pop(); // 弹出栈顶元素

cout << st.top(); // 输出新的栈顶元素,结果为1

4. 队列:

队列是一种遵循FIFO(先进先出)原则的线性数据结构。cpp#include

queue q; // 声明一个整数队列

q.push(1); // 将元素1加入队列q.push(2); // 将元素2加入队列

cout << q.front(); // 输出队列的第一个元素,结果为1q.pop(); // 移除队列的第一个元素

cout << q.front(); // 输出新的队列的第一个元素,结果为2

5. 树:

树是一种非线性数据结构,由节点和边组成,其中一个节点被指定为根节点,其他节点被称为子节点。cppstruct TreeNode { int data; TreeNode* left; TreeNode* right;};

TreeNode* root = new TreeNode();root->data = 1; // 设置根节点的值为1

TreeNode* leftChild = new TreeNode();leftChild->data = 2;root->left = leftChild; // 将左子节点连接到根节点

TreeNode* rightChild = new TreeNode();rightChild->data = 3;root->right = rightChild; // 将右子节点连接到根节点

// 遍历树并输出每个节点的值void traverse(TreeNode* node) { if (node == nullptr) return;

cout << node->data << ' ';    traverse(node->left);    traverse(node->right);}

traverse(root); // 输出结果为1 2 3

希望这些C++代码示例能够帮助您更好地理解数组、链表、栈、队列和树这五种常见数据结构。如果您有任何问题,请随时提出!

C++数据结构详解:数组、链表、栈、队列、树

原文地址: http://www.cveoy.top/t/topic/6q4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录