21xrx.com
2024-12-22 21:17:47 Sunday
登录
文章检索 我的文章 写文章
C++描述的数据结构
2023-07-10 19:21:49 深夜i     --     --
- C++ - 数据结构 - 链表 - -

C++是一种通用的编程语言,允许程序员创建和操作多种不同的数据结构。数据结构是存储和组织数据的方法,包括数组、链表、栈、队列和树等。使用C++可以方便地创建这些数据结构,并提供灵活的操作方法。

数组是最基本的数据结构之一,它可以存储多个相同类型的值。在C++中,数组可以通过定义一个下标范围和类型来声明。例如,要声明一个包含10个整数的数组可以使用以下代码:


int arr[10];

链表是一种动态的数据结构,其中每个节点包含一个值和一个指向下一个节点的指针。链表的大小可以动态改变,插入或删除节点不需要移动其他节点。在C++中,可以使用指针和结构体来实现链表。以下是一个简单的链表实现:


struct Node {

  int value;

  Node* next;

};

Node* head = nullptr;

void addNode(int value) {

  Node* newNode = new Node;

  newNode->value = value;

  newNode->next = head;

  head = newNode;

}

栈是一种后进先出的数据结构,通常用于存储需要反向处理的数据。在C++中,可以使用数组或链表实现栈。以下是一个使用链表实现的栈:


class Stack {

public:

  void push(int value) {

    Node* newNode = new Node;

    newNode->value = value;

    newNode->next = top;

    top = newNode;

  }

 

  int pop() {

    int value = top->value;

    Node* oldTop = top;

    top = top->next;

    delete oldTop;

    return value;

  }

 

  bool isEmpty()

    return top == nullptr;

 

private:

  Node* top = nullptr;

};

队列是一种先进先出的数据结构,通常用于存储需要按顺序处理的数据。在C++中,可以使用数组或链表实现队列。以下是一个使用数组实现的队列:


class Queue {

public:

  void enqueue(int value) {

    arr[rear++] = value;

  }

 

  int dequeue() {

    return arr[front++];

  }

 

  bool isEmpty()

    return front == rear;

 

private:

  int arr[100];

  int front = 0;

  int rear = 0;

};

树是一种层级结构的数据结构,其中每个节点可以有多个子节点。树可以用于搜索和排序等算法实现。在C++中,可以使用指针和结构体来实现树。以下是一个简单的二叉树实现:


struct Node {

  int value;

  Node* left;

  Node* right;

};

Node* root = nullptr;

void insert(int value) {

  if (root == nullptr)

    root = new Node;

    root->value = value;

    return;

 

 

  Node* current = root;

  while (true) {

    if (value < current->value) {

      if (current->left == nullptr)

        current->left = new Node;

        current->left->value = value;

        break;

     

      current = current->left;

    } else {

      if (current->right == nullptr)

        current->right = new Node;

        current->right->value = value;

        break;

     

      current = current->right;

    }

  }

}

总之,C++提供了丰富的工具和语法,可以方便地实现和操作多种不同类型的数据结构。程序员可以根据不同的需求选择合适的数据结构来优化程序性能和效率。

  
  

评论区

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