C和C++实现Stack
来源:互联网 发布:淘宝号被冻结解冻方法 编辑:程序博客网 时间:2024/05/18 15:51
C和C++实现Stack
分类: 2. C/C++2007-09-09 16:21 2066人阅读 评论(2) 收藏 举报
c++cstructnullclass语言
/************************************************************************/
/* 使用c++实现Stack */
/************************************************************************/
#include <stdio.h>
class Stack
{
public:
Stack();
~Stack();
void Push(void* data);
void* Pop();
protected:
typedef struct elementT {
struct elementT* next;
void* data;
}element;
element* firstElement;
};
Stack::Stack() {
firstElement = NULL;
return;
}
Stack::~Stack() {
element* next;
while (firstElement)
{
next = firstElement->next;
delete firstElement;
firstElement = next;
}
return;
}
void Stack::Push(void* data) {
element* ele = new element;
ele->data = data;
ele->next = firstElement;
firstElement = ele;
return;
}
void* Stack::Pop() {
element* popElement = firstElement;
void* data;
if (firstElement == NULL)
{
//handle the error
//throw StackError(E_EMPTY);
}
data = firstElement->data;
firstElement = firstElement->next;
delete popElement;
return data;
}
/************************************************************************/
/* 使用c语言实现Stack */
/************************************************************************/
#include <memory>
typedef struct elementT {
struct elementT* next;
void* data;
}element;
int CreateStack(element **stack)
{
*stack = NULL;
return 1;
}
int Push(element** stack, void* data)
{
element* ele;
ele = (element*) malloc(sizeof(element));
if (!ele)
{
return 0;
}
ele->data = data;
ele->next = *stack;
*stack = ele;
return 1;
}
int Pop(element** stack, void** data)
{
element* ele;
if (!(ele = *stack))
{
return 0;
}
*data = ele->data;
*stack = ele->next;
free(ele);
return 1;
}
int DeleteStack(element** stack)
{
element* next;
while (*stack)
{
next = (*stack)->next;
free(*stack);
*stack = next;
}
return 1;
}
</memory></stdio.h>
/* 使用c++实现Stack */
/************************************************************************/
#include <stdio.h>
class Stack
{
public:
Stack();
~Stack();
void Push(void* data);
void* Pop();
protected:
typedef struct elementT {
struct elementT* next;
void* data;
}element;
element* firstElement;
};
Stack::Stack() {
firstElement = NULL;
return;
}
Stack::~Stack() {
element* next;
while (firstElement)
{
next = firstElement->next;
delete firstElement;
firstElement = next;
}
return;
}
void Stack::Push(void* data) {
element* ele = new element;
ele->data = data;
ele->next = firstElement;
firstElement = ele;
return;
}
void* Stack::Pop() {
element* popElement = firstElement;
void* data;
if (firstElement == NULL)
{
//handle the error
//throw StackError(E_EMPTY);
}
data = firstElement->data;
firstElement = firstElement->next;
delete popElement;
return data;
}
/************************************************************************/
/* 使用c语言实现Stack */
/************************************************************************/
#include <memory>
typedef struct elementT {
struct elementT* next;
void* data;
}element;
int CreateStack(element **stack)
{
*stack = NULL;
return 1;
}
int Push(element** stack, void* data)
{
element* ele;
ele = (element*) malloc(sizeof(element));
if (!ele)
{
return 0;
}
ele->data = data;
ele->next = *stack;
*stack = ele;
return 1;
}
int Pop(element** stack, void** data)
{
element* ele;
if (!(ele = *stack))
{
return 0;
}
*data = ele->data;
*stack = ele->next;
free(ele);
return 1;
}
int DeleteStack(element** stack)
{
element* next;
while (*stack)
{
next = (*stack)->next;
free(*stack);
*stack = next;
}
return 1;
}
</memory></stdio.h>
0 0
- C和C++实现Stack
- C和C++实现Stack
- Stack链表C实现
- c语言 ---- Stack实现
- 【C++】利用list和vector实现stack和queue!!!
- C语言实现stack模板
- 栈(Stack) C 语言实现
- 纯C的Stack实现
- [C#]Stack类的实现
- C语言Stack简单实现
- c++:stack
- 【转】C语言实现stack模板
- C语言,简单栈的实现 Stack
- 动态栈Stack的C语言实现
- c语言栈Stack简单实现
- C++:栈(stack)的模板类实现
- 栈(Stack)的C语言实现
- 栈(stack)C语言链表实现&&数组实现
- 大学毕业后五年决定你的命运
- c/c++编译中遇到的问题
- VC中ComboBox下拉列表不显示数据或只显示一行问题
- 黑马程序员—多线程
- POJ 1019 Number Sequence
- C和C++实现Stack
- 关于学习Hadoop中未总结的资料
- 《javascript语言精粹》闭包一个糟糕的例子解惑
- 生活中的小办法恢复你误删的文件
- 菜鸟Android学习之路17-进度条的显示
- 怎么在linux中解压缩tar.xz格式文件
- 编写高效的android代码
- Android第12天--画廊
- HDU-2108 Shape of HDU