下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C++详解链栈的实现目录链栈简述示例代码开发环境运行结果注意
链栈简述
链栈从概念上看是链表和栈的结合,含有栈先进后出的特性,也具有链表的动态增加节点的特性,这里相当于在链表的基础上增加只能从一端操作,且保持先进后出的特性。将头节点所在的那端看作栈顶,头节点后紧接着的节点所在的位置,即第一个存储数据的节点所在的位置为出栈入栈的位置。
示例代码
直接上代码:
LinkStack.h
#pragmaonce
typedefstructLINKNODE{
structLINKNODE*pNext;
}LinkNode;
classLinkStack
public:
LinkStack();
~LinkStack();
voidpushLinkStack(LinkNode*data);
voidpopLinkStack();
LinkNode*getTopLinkStack();
intgetSizeLinkStack();
voidclearStack();
private:
//这里可以不定义该类类型的指针,该类类型变量定义后只能使用单独的初始化函数初始化,
//不能用构造函数,会造成循环调用构造函数的死循环中
//LinkStack*m_LinkStack;
LinkNodem_head;
intm_size;
};
LinkStack.cpp
#include"LinkStack.h"
LinkStack::LinkStack()
m_size=0;
LinkStack::~LinkStack()
voidLinkStack::pushLinkStack(LinkNode*data)
if(data==nullptr)
return;
data-pNext=m_head.pNext;
m_head.pNext=data;
m_size++;
voidLinkStack::popLinkStack()
LinkNode*pDel=m_head.pNext;
m_head.pNext=pDel-pNext;
m_size--;
LinkNode*LinkStack::getTopLinkStack()
returnm_head.pNext;
intLinkStack::getSizeLinkStack()
returnm_size;
voidLinkStack::clearStack()
m_head.pNext=nullptr;
m_size=0;
}
main.cpp
#includeiostream
#include"LinkStack.h"
usingnamespacestd;
typedefstructPERSON
LinkNodenode;
charname[64];
intage;
}Person;
voidtest()
LinkStack*pLinkStack=newLinkStack;
Personp1,p2,p3,p4,p5;
strcpy_s(,"hudh");
strcpy_s(,"呼呼");
strcpy_s(,"jidi");
strcpy_s(,"hus");
strcpy_s(,"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-ageendl;
pLinkStack-popLinkStack();
deletepLinkStack;
pLinkStack=nullptr;
intmain()
test();
return0;
//运行程序:Ctrl+F5或调试“开始执行(不调试)”菜单
//调试程序:F5或调试“开始调试”菜单
//入门使用技巧:
//1.使用解决方案资源管理器窗口添加/管理文件
//2.使用团队资源管理器窗口连接到源代码管理
//3.使用输出窗口查看生成输出和其他消息
//4.使用错误列表窗口查看错误
//5.转到“项目”“添加新项”以创建新的代码文件,或转到“项目”“添加现有项”以将现有代码文件添加到项目
//6.将来,若要再次打开此项目,请转
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册会计师战略中风险管理技术方法的应用选择
- 绿色中式风道德讲堂主题
- 生物科技公司实习心得体会
- 医疗器械信息咨询公司合同付款管理办法
- 麻纺厂物料消耗控制准则
- 2026广东省社会福利服务中心(广东江南医院)编外人员招聘26人备考题库及答案详解(名校卷)
- 2026四川 巴中市属国企市场化招聘聘职业经理人5人备考题库附参考答案详解(培优a卷)
- 2026南方科技大学生物医学工程系诚聘海内外高层次人才备考题库及答案详解(夺冠系列)
- 2026年上半年成都市温江区面向社会考核招聘副高级及以上职称教师备考题库(7人)含答案详解(夺分金卷)
- 2026山东菏泽宋江武校招聘备考题库及答案详解(基础+提升)
- 非遗泥塑传承与创新:传统色彩·现代技艺·实践探索【课件文档】
- 汽车行业无人配送专题报告:无人配送应用前景广阔国内迎来加速期-
- 城管队伍建设考核制度
- 卫生院中层干部任用制度
- 2026年高级经济师宏观经济学实务操作题集
- 前程无忧在线测试题库及答案行测
- 第15课+列强入侵与中国人民的反抗斗争(教学设计)-中职历史(高教版2023基础模块)
- 护理礼仪与沟通:构建和谐医患关系
- 炎症性肠病精准医疗:生物标志物与治疗响应
- HG-T 2521-2022 工业硅溶胶介绍
- 《健康教育学》第五章-健康心理课件
评论
0/150
提交评论