21xrx.com
2025-06-23 04:20:42 Monday
文章检索 我的文章 写文章
C++链栈的基本操作
2023-07-10 11:41:47 深夜i     21     0
C++ 链栈 基本操作 入栈 出栈

C++链栈是一种常见的数据结构,在实际开发中经常被使用。其基本操作包括:初始化、入栈、出栈、获取栈顶元素以及判断是否为空栈等。

首先,初始化链栈需要定义一个头节点,这个节点可以通过C++的结构体或者类来实现。比如可以定义一个结构体:

struct Node {
  int data;
  Node* next;
};

然后定义一个头节点:

Node* head = new Node();
head->next = NULL;

这样就完成了链栈的初始化。

接下来是入栈操作,即向链栈中添加元素。入栈操作需要先判断链栈是否为空,如果为空,则添加的元素为头节点,否则新元素成为链栈的新的头节点。代码如下:

void push(Node* &head, int data) {
  Node* new_node = new Node();
  new_node->data = data;
  if(head->next == NULL)
    head->next = new_node;
   else
    new_node->next = head->next;
    head->next = new_node;
  
}

然后是出栈操作,即从链栈中删除元素。出栈操作需要先判断链栈是否为空,如果为空,则提示错误;否则,删除链栈的头节点并把下一个节点作为新的头节点。代码如下:

int pop(Node* &head) {
  if(head->next == NULL)
    cout << "Error: Stack is empty!" << endl;
    return -1;
   else {
    Node* temp = head->next;
    int data = temp->data;
    head->next = temp->next;
    delete temp;
    return data;
  }
}

接下来是获取栈顶元素的操作。这个操作就是返回链栈的头节点的数据。代码如下:

int top(Node* head) {
  if(head->next == NULL)
    cout << "Error: Stack is empty!" << endl;
    return -1;
   else
    return head->next->data;
  
}

最后是判断链栈是否为空的操作。如果链栈的头节点的下一个节点是空,则链栈为空。代码如下:

bool isEmpty(Node* head) {
  if(head->next == NULL)
    return true;
   else
    return false;
  
}

以上就是C++链栈的基本操作。可以看出,链栈的实现比较简单,只需要借助头节点来实现即可。因此,在实际开发中,使用链栈可以提高程序效率,并且代码结构也比较清晰易懂。

  
  
下一篇: C++ 结构体缓存

评论区