C++练习:用指针实现栈
来源:互联网 发布:gps端口查看器 编辑:程序博客网 时间:2024/06/11 18:46
使用C++的指针实现一个简单版的栈
stack.h
#ifndef stack_hpp#define stack_hpp#include <stdio.h>class Stack{public: Stack(); ~Stack(); bool Push(int value); int Pop(); private: unsigned int m_elem_size; unsigned int m_logic_length; unsigned int m_alloc_length; int* m_elems;};#endif /* stack_hpp */
stack.cpp
#include "stack.hpp"#include <stdlib.h>#include <assert.h>Stack::Stack(){ m_elem_size = sizeof(int); m_logic_length = 0; m_alloc_length = 4; m_elems = (int*)malloc(m_alloc_length * sizeof(m_elem_size));}Stack::~Stack(){ free(m_elems);}bool Stack::Push(int value){ //如果栈已满,根据翻倍策略扩大内存 if(m_logic_length == m_alloc_length) { m_alloc_length = m_alloc_length * 2; m_elems = (int*)realloc(m_elems, m_alloc_length * m_elem_size); assert(m_elems != NULL); } m_elems[m_logic_length] = value; m_logic_length ++; return true;}int Stack::Pop(){ assert(m_logic_length > 0); m_logic_length --; return m_elems[m_logic_length];}
main.cpp
#include "stack.hpp"#include <iostream>int main(int argc, const char * argv[]) { Stack stack; stack.Push(1); stack.Push(2); stack.Push(3); stack.Push(4); stack.Push(5); int val = stack.Pop(); std::cout << "val" << val << std::endl; return 0;}
0 0
- C++练习:用指针实现栈
- C 函数指针练习
- c和指针练习
- Linux C 指针练习
- Linux C 指针练习
- 【c基础练习】指针
- C语言 指针操作练习
- C语言指针练习1
- C语言指针练习2
- C语言指针的练习
- c语言之指针练习
- c 语言指针练习<一>
- c 语言指针练习<二>
- c函数和指针练习
- C和指针-编程练习
- c笔记08---变量,栈,秒表练习,关键字 static,指针变量和变量的指针
- C语言青葱之路-指针练习-输入整型数组,用指针输出
- 《c和指针》第十二章单链表练习
- 线程同步
- maven setting.xml文件配置详情
- 技能包!Linux 下清空或删除大文件内容的 5 种方法
- code vs 3160 最长公共子串(后缀自动机)
- Codeforces Round #387 (Div. 2) C && coedeforces 744 C Servers(水题)
- C++练习:用指针实现栈
- 删除ztree树
- c++公有继承、保护继承和私有继承
- 从源码角度深入分析ant
- 欧拉计划 3
- ssh: connect to host localhost port 22: Connection refused
- 学习笔记:GoogLeNet
- struts2运行流程
- 基本表的定义、删除与修改—实验报告