当前位置: 编程技术>c/c++/嵌入式
用C++实现一个链式栈的实例代码
来源: 互联网 发布时间:2014-10-17
本文导语: 自定义一个链式栈,c++语言实现,不足之处,还望指正! 代码如下:// MyStack.cpp : 定义控制台应用程序的入口点。//自己构造一个链式栈,具有push(入栈),pop(出栈),top(取得栈顶元素),size(返回栈大小),empty(判断...
自定义一个链式栈,c++语言实现,不足之处,还望指正!
// MyStack.cpp : 定义控制台应用程序的入口点。
//自己构造一个链式栈,具有push(入栈),pop(出栈),top(取得栈顶元素),size(返回栈大小),empty(判断是否为空)等功能
#include "stdafx.h"
#include
using namespace std;
//构造栈的节点
template
struct NODE
{
NODE* next;
T data;
};
template
class MyStack
{
public:
MyStack()
{
phead = new NODE;
if (phead == NULL)
{
cout next = NULL;
}
}
//入栈
void push(T e)
{
NODE* p = new NODE;
if (p == NULL)
{
cout next = phead->next;
phead->next = p;
}
}
//出栈
T pop()
{
T e;
NODE* p = phead->next;
if(p != NULL)
{
phead->next = p->next;
e = p->data;
delete p;
return e;
}
else
{
cout data;
return e;
}
else
{
cout next;
count++;
}
return count;
}
//判断stack是否为空
bool empty()
{
NODE* p = phead;
if (p->next == NULL)
{
return true;
}
else
{
return false;
}
}
private:
NODE* phead;
};
int _tmain(int argc, _TCHAR* argv[])
{
MyStack sta;
sta.push(1);
sta.push(2);
sta.push(3);
cout
代码如下:
// MyStack.cpp : 定义控制台应用程序的入口点。
//自己构造一个链式栈,具有push(入栈),pop(出栈),top(取得栈顶元素),size(返回栈大小),empty(判断是否为空)等功能
#include "stdafx.h"
#include
using namespace std;
//构造栈的节点
template
struct NODE
{
NODE* next;
T data;
};
template
class MyStack
{
public:
MyStack()
{
phead = new NODE;
if (phead == NULL)
{
cout next = NULL;
}
}
//入栈
void push(T e)
{
NODE* p = new NODE;
if (p == NULL)
{
cout next = phead->next;
phead->next = p;
}
}
//出栈
T pop()
{
T e;
NODE* p = phead->next;
if(p != NULL)
{
phead->next = p->next;
e = p->data;
delete p;
return e;
}
else
{
cout data;
return e;
}
else
{
cout next;
count++;
}
return count;
}
//判断stack是否为空
bool empty()
{
NODE* p = phead;
if (p->next == NULL)
{
return true;
}
else
{
return false;
}
}
private:
NODE* phead;
};
int _tmain(int argc, _TCHAR* argv[])
{
MyStack sta;
sta.push(1);
sta.push(2);
sta.push(3);
cout