不能小看这些基本的数据结构,写了才发现还是会有问题出现的。

有码有真相:

#pragma once

class MyStack
{
public:
MyStack(void);
~MyStack(void);
void Push(int aValue);
int Top();
void Pop();
void PrintAll(); private:
int* m_pData;
int m_Len;
int m_Top;
};

  

#include "MyStack.h"
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h> MyStack::MyStack(void)
:m_pData(NULL)
, m_Len(8)
,m_Top(0)
{
m_pData = (int*)malloc(sizeof(int)*m_Len);
memset(m_pData,0,sizeof(int)*m_Len);
} MyStack::~MyStack(void)
{
if (NULL != m_pData)
{
free(m_pData);
m_pData = NULL;
}
} void MyStack::Push( int aValue )
{
if (m_Top == m_Len)
{
m_Len = m_Len << 2;
m_pData = (int*)realloc(m_pData,sizeof(int)*m_Len);
}
m_pData[m_Top++] = aValue;
} void MyStack::Pop()
{
if (m_Top >= 0)
{
--m_Top;
}
else
{
printf("NoData/n");
}
} int MyStack::Top()
{
if (m_Top>=0)
{
return m_pData[m_Top];
}
else
{
printf("NoData/n");
return -1;
}
} void MyStack::PrintAll()
{
for (int i =0; i< m_Top;++i)
{
printf("%d ",m_pData[i]);
}
printf("\n");
}

  测试代码:

#include "stdio.h"

#include "BinarySearchTree.h"

#include "MyQueue.h"
#include "MyStack.h" void CopyStr(char* aDestStr,const char* aSrcStr)
{
//assert(aDestStr && aSrcStr);
char* lpStr = aDestStr;
while((*aDestStr = *aSrcStr) != '\0')
{
++aDestStr;
++aSrcStr;
}
} int main()
{
MyStack lStack;
for (int i = 0; i< 30; ++i)
{
lStack.Push(i);
}
lStack.PrintAll(); lStack.Pop(); lStack.Pop(); lStack.PrintAll(); lStack.Pop();
lStack.Pop();
lStack.Pop();
lStack.Pop();
lStack.Pop(); lStack.PrintAll();
}

  

数据结构学习之stack的更多相关文章

  1. 数据结构学习笔记——stack实现(数组篇)

    一 栈:是一种表,限制插入和删除只能在一个位置,也即是表的末端(也是栈的顶)进行. 基本操作:push 和 pop. 二 栈的数组实现: 运用数组来存储元素,和栈操作先关的是theArray(一个数组 ...

  2. 算法设计和数据结构学习_5(BST&AVL&红黑树简单介绍)

    前言: 节主要是给出BST,AVL和红黑树的C++代码,方便自己以后的查阅,其代码依旧是data structures and algorithm analysis in c++ (second ed ...

  3. 数据结构学习之字符串匹配算法(BF||KMP)

    数据结构学习之字符串匹配算法(BF||KMP) 0x1 实验目的 ​ 通过实验深入了解字符串常用的匹配算法(BF暴力匹配.KMP.优化KMP算法)思想. 0x2 实验要求 ​ 编写出BF暴力匹配.KM ...

  4. 数据结构学习之栈求解n皇后问题

    数据结构学习之栈求解n皇后问题 0x1 目的 ​ 深入掌握栈应用的算法和设计 0x2 内容 ​ 编写一个程序exp3-8.cpp求解n皇后问题. 0x3 问题描述 即在n×n的方格棋盘上,放置n个皇后 ...

  5. 1.基础: 万丈高楼平地起——Redis基础数据结构 学习记录

    <Redis深度历险:核心原理和应用实践>1.基础: 万丈高楼平地起——Redis基础数据结构 学习记录http://naotu.baidu.com/file/b874e2624d3f37 ...

  6. ES6中Map数据结构学习笔记

    很多东西就是要细细的品读然后做点读书笔记,心理才会踏实- Javascript对象本质上就是键值对的集合(Hash结构),但是键只能是字符串,这有一定的限制. 1234 var d = {}var e ...

  7. 【Java数据结构学习笔记之二】Java数据结构与算法之栈(Stack)实现

      本篇是java数据结构与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型   栈是 ...

  8. [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)

    再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...

  9. linux内核数据结构学习总结

    目录 . 进程相关数据结构 ) struct task_struct ) struct cred ) struct pid_link ) struct pid ) struct signal_stru ...

随机推荐

  1. https://www.cnblogs.com/xubing-613/p/5895948.html

    最近总是需要用matplotlib绘制一些图,由于是新手,所以总是需要去翻书来找怎么用,即使刚用过的,也总是忘.所以,想写一个入门的教程,一方面帮助我自己熟悉这些函数,另一方面有比我还小白的新手可以借 ...

  2. 第一个手写Win32窗口程序

    第一个手写Win32窗口程序 一 Windows编程基础 1 Win32应用程序的基本类型 1.1 控制台程序 不需要完善的Windows窗口,可以使用DOS窗口 的方式显示. 1.2 Win32窗口 ...

  3. uva 10712 - Count the Numbers(数位dp)

    题目链接:uva 10712 - Count the Numbers 题目大意:给出n,a.b.问说在a到b之间有多少个n. 解题思路:数位dp.dp[i][j][x][y]表示第i位为j的时候.x是 ...

  4. tensorflow基本操作介绍

    1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf #定义‘符号’变量,也称为占位符 a = tf. ...

  5. ICTCLAS中的HMM人名识别

    http://www.hankcs.com/nlp/segment/ictclas-the-hmm-name-recognition.html 本文主要从代码的角度分析标注过程中的细节,理论谁都能说, ...

  6. postgres配置只能让某一个ip的主机登陆

    https://stackoverflow.com/questions/11753296/configure-postgresql-to-work-for-only-localhost-or-spec ...

  7. 解决THINKCMF后台文章的相册图集只能上传一个图片的问题

    遇到的问题: 最近使用了THINKCMF给客户开发了一个企业网站,客户在使用了一段时间后打电话说后台文章编辑页面有问题 经过沟通过知道,在后台文章编辑和添加页面相册图集每次只能上传一张图片   在跟客 ...

  8. 通读cheerio API

    所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成. ###cheerio ...

  9. sourceTree 基础使用

    https://www.cnblogs.com/tian-xie/p/6264104.html

  10. [Spring Boot] @Component, @AutoWired and @Primary

    Spring boot is really good for Dependencies injection by using Autowiring. Each class instancse in s ...