21xrx.com
2024-12-22 19:49:03 Sunday
登录
文章检索 我的文章 写文章
C++链栈的基本操作
2023-07-10 11:41:47 深夜i     --     --
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++ 结构体缓存

评论区

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