iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++链栈的实现代码怎么写
  • 654
分享到

C++链栈的实现代码怎么写

2023-07-02 13:07:29 654人浏览 独家记忆
摘要

这篇文章主要讲解了“c++链栈的实现代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++链栈的实现代码怎么写”吧!链栈简述链栈从概念上看是链表和栈的结合,含有栈先进后出的特性,也具

这篇文章主要讲解了“c++链栈的实现代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++链栈的实现代码怎么写”吧!

链栈简述

链栈从概念上看是链表和栈的结合,含有栈先进后出的特性,也具有链表的动态增加节点的特性,这里相当于在链表的基础上增加只能从一端操作,且保持先进后出的特性。将头节点所在的那端看作栈顶,头节点后紧接着的节点所在的位置,即第一个存储数据的节点所在的位置为出栈入栈的位置。

示例代码

直接上代码:

LinkStack.h

#pragma oncetypedef struct LINKnode {struct LINKNODE *pNext;}LinkNode;class LinkStack{public:LinkStack();~LinkStack();void pushLinkStack(LinkNode *data);void popLinkStack();LinkNode *getTopLinkStack();int getSizeLinkStack();void clearStack();private://这里可以不定义该类类型的指针,该类类型变量定义后只能使用单独的初始化函数初始化,//不能用构造函数,会造成循环调用构造函数的死循环中//LinkStack *m_LinkStack;LinkNode m_head;int m_size;};

LinkStack.cpp

#include "LinkStack.h"LinkStack::LinkStack(){m_size = 0;}LinkStack::~LinkStack(){}void LinkStack::pushLinkStack(LinkNode * data){if (data == nullptr){return;}data->pNext = m_head.pNext;m_head.pNext = data;m_size++;}void LinkStack::popLinkStack(){LinkNode *pDel = m_head.pNext;m_head.pNext = pDel->pNext;m_size--;}LinkNode * LinkStack::getTopLinkStack(){return m_head.pNext;}int LinkStack::getSizeLinkStack(){return m_size;}void LinkStack::clearStack(){m_head.pNext = nullptr;m_size = 0;}

main.cpp

#include <iOStream>#include "LinkStack.h"using namespace std;typedef struct PERSON {LinkNode  node;char name[64];int age;}Person;void test() {LinkStack *pLinkStack = new LinkStack;Person p1, p2, p3,p4,p5;strcpy_s(p1.name,"hudh");strcpy_s(p2.name,"呼呼");strcpy_s(p3.name,"jidi");strcpy_s(p4.name, "hus");strcpy_s(p5.name, "akios");p1.age = 34;p2.age = 45;p3.age = 67;p4.age = 67;p5.age = 78;pLinkStack->pushLinkStack((LinkNode*)&p1);pLinkStack->pushLinkStack((LinkNode*)&p2);pLinkStack->pushLinkStack((LinkNode*)&p3);pLinkStack->pushLinkStack((LinkNode*)&p4);pLinkStack->pushLinkStack((LinkNode*)&p5);while (pLinkStack->getSizeLinkStack() > 0) {Person *pData = (Person*)pLinkStack->getTopLinkStack();cout << "name: " << pData->name << " age:" << pData->age << endl;pLinkStack->popLinkStack();}delete pLinkStack;pLinkStack = nullptr;} int main(){test();return 0;}// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单// 调试程序: F5 或调试 >“开始调试”菜单// 入门使用技巧: //   1. 使用解决方案资源管理器窗口添加/管理文件//   2. 使用团队资源管理器窗口连接到源代码管理//   3. 使用输出窗口查看生成输出和其他消息//   4. 使用错误列表窗口查看错误//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件

开发环境

vs2017 控制台输出程序。

运行结果

C++链栈的实现代码怎么写

注意

栈是连续的存储空间,故而在数量上会受到限制,而链栈打破了栈的内存空间的连续性,扩展性更强。

感谢各位的阅读,以上就是“C++链栈的实现代码怎么写”的内容了,经过本文的学习后,相信大家对C++链栈的实现代码怎么写这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C++链栈的实现代码怎么写

本文链接: https://www.lsjlt.com/news/341963.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++链栈的实现代码怎么写
    这篇文章主要讲解了“C++链栈的实现代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++链栈的实现代码怎么写”吧!链栈简述链栈从概念上看是链表和栈的结合,含有栈先进后出的特性,也具...
    99+
    2023-07-02
  • C++栈的数组实现代码
    栈的抽象数据结构。栈的成员函数需要包括这几个基本的函数:initializeStack(),isEmptyStack(),isFullStack,push(),pop(),top()...
    99+
    2024-04-02
  • Java栈之链式栈存储结构的实现代码
    Java栈之链式栈存储结构实现一、链栈采用单链表来保存栈中所有元素,这种链式结构的栈称为链栈。二、栈的链式存储结构实现package com.ietree.basic.datastructure.stack;public class Lin...
    99+
    2023-05-31
    java 存储
  • C语言中怎么实现链栈
    这篇文章将为大家详细讲解有关C语言中怎么实现链栈,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。链栈图解链栈的常规操作LinkStack  InitLinkStack();// ...
    99+
    2023-06-15
  • C++详解链栈的实现
    目录链栈简述示例代码开发环境运行结果注意链栈简述 链栈从概念上看是链表和栈的结合,含有栈先进后出的特性,也具有链表的动态增加节点的特性,这里相当于在链表的基础上增加只能从一端操作,且...
    99+
    2024-04-02
  • 怎么用C语言实现链式栈
    这篇文章给大家分享的是有关怎么用C语言实现链式栈的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。堆栈的基本概念堆栈是只能在一端增删元素的表结构,该位置称为栈顶堆栈的基本运算是压入和弹出,前者相当于插入,而后者则是删...
    99+
    2023-06-22
  • C语言实现栈的示例代码
    目录一、了解栈的结构特点二、具体实现补充 栈的用处一、了解栈的结构特点 栈是一种特殊的线性表,只允许从一端进出数据,称为后进先出,先进后出。 压栈:栈的插入操作叫做进栈/压...
    99+
    2024-04-02
  • C语言实现链栈的步骤
    目录链栈图解链栈的常规操作定义链栈结构体初始化链栈链栈判空计算链栈的长度链栈入栈(Push)链栈出栈(Pop)链栈各操作测试源代码 链栈图解 链栈的常规操作 LinkSta...
    99+
    2024-04-02
  • C++代码实现双向链表
    本文实例为大家分享了C++实现双向链表的具体代码,供大家参考,具体内容如下 双向链表:两个指针域,一个指向前结点,一个指向后结点 list.h #pragma once #defin...
    99+
    2024-04-02
  • C语言责任链模式代码怎么写
    这篇文章主要讲解了“C语言责任链模式代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言责任链模式代码怎么写”吧!介绍:责任链模式是一种行为模式,它可以允许你将请求沿着处理者链进行...
    99+
    2023-06-22
  • c语言单链表反转代码怎么写
    以下是一个简单的C语言单链表反转代码示例: #include #include // 定义链表节点结构体 typedef st...
    99+
    2023-10-26
    c语言
  • C语言实现扫雷代码怎么写
    这篇文章主要介绍了C语言实现扫雷代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言实现扫雷代码怎么写文章都会有所收获,下面我们一起来看看吧。C语言实现扫雷OvO0.打印菜单void men...
    99+
    2023-06-29
  • C/C++实现蛇形矩阵的示例代码怎么写
    这篇文章将为大家详细讲解有关C/C++实现蛇形矩阵的示例代码怎么写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。菜鸡蒟蒻想在博客中记录一些算法学习的心得体会,会持续更新C/C++方面的题解,...
    99+
    2023-06-26
  • C语言实现计算器的代码怎么写
    这篇文章主要介绍了C语言实现计算器的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言实现计算器的代码怎么写文章都会有所收获,下面我们一起来看看吧。C语言计算器两种方法//一般做法#include&...
    99+
    2023-06-29
  • C语言三子棋的实现代码怎么写
    这篇文章主要介绍“C语言三子棋的实现代码怎么写”,在日常操作中,相信很多人在C语言三子棋的实现代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言三子棋的实现代码怎么写”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • html链接css代码怎么写
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-16
  • C语言实现通讯录的代码怎么写
    这期内容当中小编将会给大家带来有关C语言实现通讯录的代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。(一)实现思路1.通讯录功能添加好友,删除好友,查找好友,修改好友信息,对好友进行排序2.模块化...
    99+
    2023-06-22
  • C++代码实现链队列详解
    目录主要功能:完整代码展示:总结主要功能: 初始化、入队、出队、取队头元素、销毁队列、输出队列 完整代码展示: #include <iostream> using n...
    99+
    2024-04-02
  • C语言实现贪吃蛇代码怎么写
    这是一个简单的C语言贪吃蛇游戏的代码示例: #include <stdio.h> #include <conio....
    99+
    2024-03-01
    C语言
  • C/C++实现线性单链表的示例代码
    目录线性单链表简介C语言实现代码C++语言实现代码线性单链表简介 使用链存储结构的线性存储结构为线性单链表,线性存储结构是元素逻辑结构一对一,链存储结构是元素物理结构不连续,线性单链...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作