数据结构探险——栈篇

这篇博客通过C++在Visual Studio中创建了一个win32控制台应用程序,介绍了栈这种后进先出的数据结构。作者实现了MyStack模板类,并在demo中展示了如何使用栈进行坐标类存储、进制转换等功能。涉及的文件包括MyStack.h、MyStack.cpp、demo.cpp、Coordinate.h和Coordinate.cpp,其中Coordinate类还重载了<<操作符。
摘要由CSDN通过智能技术生成

@这篇文档是由C++代码实现的栈,并对以栈为基础的括号匹配、进制转换等问题进行了解决

栈是一种后进先出的数据结构。其中生活中以摞盘子为例最为实际。本文是以Visual Studio中新建的C++win32的控制台应用程序实现的,其中建立了头文件和源文件以及实现main()的demo文件,分别是MyStack.h和MyStack.cpp和demo.cpp,以及Coordinate.h和Coordinate.cpp文件。

其中MyStack.h和MyStack.cpp文件是建立一个栈的模板类,方便以后调用其中的函数。Coordinate.h和Coordinate.cpp文件主要是建立一个坐标属性的类,方便将该数据类型赋值给栈的模板类,以存放具有坐标属性的栈。demo中主要利用模板栈类实现了坐标类存入栈中、以及进制转换和浮点型类型数据等存放入栈中。

MyStack.h文件

#ifndef MYSTACK_H
#define MYSTACK_H

template <typename T>
class MyStack
{
   
public:
	MyStack(int length);
	virtual ~MyStack();
	int MyStackLen();
	bool MyStackEmpty();
	bool MyStackFull();
	void ClearMyStack();
	bool InsertElement(T element);
	bool DeleteElement(T &element);
	bool TraversalMyStack();
private:
	T* m_tMyStack;
	int m_iMyStackLength;
	int m_iMyStackCapacity;
	int m_iTos;
};

#endif

MyStack.cpp

#include "MyStack.h"
#include <iostream>
using namespace std;


template <typename T>
MyStack<T>::MyStack(int length)
{
   
	m_iMyStackCapacity = length;
	m_tMyStack = new T[m_iMyStackCapacity];
	ClearMyStack();
}


template <typename T>
MyStack<T>::~MyStack()
{
   
	delete []m_tMyStack;
	m_tMyStack = NULL;
}


template <typename T>
int MyStack<T>::MyStackLen()
{
   
	//cout << "此时的队列长度为:" <<  m_iMyStackLength << endl;
	return m_iMyStackLength;
}

template <typename T>
bool MyStack<T>::MyStackEmpty()
{
   
	return m_iTos == 0?true:false;
}


template <typename T>
bool MyStack<T>::MyStackFull()
{
   
	return m_iTos== m_iMyStackCapacity?true:false;
}

template <typename T>
void MyStack<T>::ClearMyStack
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值