gpt4 book ai didi

用C++实现一个链式栈的实例代码

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章用C++实现一个链式栈的实例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

自定义一个链式栈,c++语言实现,不足之处,还望指正! 。

复制代码 代码如下

// MyStack.cpp : 定义控制台应用程序的入口点。 //自己构造一个链式栈,具有push(入栈),pop(出栈),top(取得栈顶元素),size(返回栈大小),empty(判断是否为空)等功能 #include "stdafx.h" #include <iostream> using namespace std; //构造栈的节点 template <class T> struct NODE {  NODE<T>* next;  T data; }; template <class T> class MyStack { public:  MyStack()  {   phead = new NODE<T>;   if (phead == NULL)   {    cout << "Failed to malloc a new node. " << endl;   }   else   {    phead->data = NULL;    phead->next = NULL;   }  }  //入栈  void push(T e)  {   NODE<T>* p = new NODE<T>;   if (p == NULL)   {    cout << "Failed to malloc a new node. " << endl;   }   else   {    p->data = e;    p->next = phead->next;    phead->next = p;   }  }  //出栈  T pop()  {   T e;   NODE<T>* p = phead->next;   if(p != NULL)   {    phead->next = p->next;    e = p->data;    delete p;    return e;   }   else   {    cout << "There is no elements in the stack." << endl;    return NULL;   }  }  //取得栈顶元素  T top()  {   T e;   NODE<T>* p = phead->next;   if (p != NULL)   {    e = p->data;    return e;   }   else   {    cout << "There is no elements in the stack." << endl;    return NULL;   }  }  //取得栈中元素个数  int size()  {   int count(0);   NODE<T>* p = phead->next;   while (p != NULL)   {    p = p->next;    count++;   }   return count;  }  //判断stack是否为空  bool empty()  {   NODE<T>* p = phead;   if (p->next == NULL)   {    return true;   }   else   {    return false;   }  } private:  NODE<T>* phead; }; int _tmain(int argc, _TCHAR* argv[]) {  MyStack<int> sta;  sta.push(1);  sta.push(2);  sta.push(3);  cout << "The size of the stack now is " << sta.size() << endl;  sta.pop();  cout << "The top element is " << sta.top() << endl;  cout << "The size of the stack now is" << sta.size() << endl;  if (sta.empty())  {   cout << "This stack is empty." << endl;  }  else  {   cout << "This stack is not empty." << endl;  }  return 0; } 。

最后此篇关于用C++实现一个链式栈的实例代码的文章就讲到这里了,如果你想了解更多关于用C++实现一个链式栈的实例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com