程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> (001)順序棧的C++實現

(001)順序棧的C++實現

編輯:C++入門知識

(001)順序棧的C++實現


(001)順序棧的C++實現 2014/12/4 jxlijunhao 這裡通過C++模板類來實現一個順序棧: 1)初始化 2)入棧 3)出棧 4)取棧頂元素
在順序棧中(一個數組中),操作的總是發生在數組的末尾

定義一個頭文件
#ifndef SQ_STACK_H
#define SQ_STACK_H

#include
using namespace std;

template
class sq_stack
{
private:
	int cap;               //總容量
	int top;               //棧頂
	T *s;                  //指向順序棧(棧底)
public:
	sq_stack(int);        //初始化
	void print_sq_stack();//打印
	int flag_sq_stack();   //檢查順序棧的狀態
	void push_sq_stack(T);//入棧
	T delete_sq_stack();  //出棧
	T read_sq_stack();    //讀棧頂元素
};

//初始化
template
sq_stack::sq_stack(int m)
{
	cap=m;
	s=new T[cap];
	top=0;
}


//打印
template
void sq_stack::print_sq_stack()
{
	int i;
	for (i=top;i>0;i--)
	{
		cout<
int sq_stack::flag_sq_stack()
{
	if (top==cap) return -1; //棧滿
	if (top==0) return 0;    //棧空
	return 1;	
}

//入棧
template
void sq_stack::push_sq_stack(T t)
{
	if (top==cap)
	{
		cout<<"stack overflow"<
T sq_stack::delete_sq_stack()
{
	T y;
	if (top==0)
	{
		cout<<"空棧"<
T sq_stack::read_sq_stack()
{
	if (top==0)
	{
		cout<<"空棧"<
#include "sq_stack.h"
int main()
{
	sq_stacks(10);
	s.push_sq_stack(50);
	s.push_sq_stack(60);
	s.push_sq_stack(70);
	s.push_sq_stack(80);
	s.push_sq_stack(90);
	s.push_sq_stack(100);

	s.print_sq_stack();
	cout<


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved