一个栈类的实现(链栈)
来源:互联网 发布:淘宝如何进货 编辑:程序博客网 时间:2024/05/17 05:57
typedef struct LNode
{
int data;
struct LNode *next;
}LNode, *pLinkList;
//类的声明
class LinkList
{
private:
pLinkList m_pList;
int m_listLength;
public:
LinkList();
~LinkList();
bool InitList ();
bool DestroyList ();
bool ClearList();
bool IsEmpty ();
int GetLength ();
bool GetNode(int position, LNode** node);
int LocateElem(int elem);
bool SetNodeData(int position, int newData);
bool GetNodeData(int position, int &data);
bool InsertNode(int beforeWhich, int data);
bool DeleteNode(int position);
};
//类的实现
Stack::Stack():top(NULL)
{
//
}
Stack::Stack(const Stack& a_stack)
{
if (a_stack.top == NULL)
{
top =NULL;
}
else
{
StackNodePtr temp = a_stack.top;
StackNodePtr end;
end= new StackNode;
end->data = temp->data;
top =end;
//第一各节点已经创建,而且填充了数据
//现在,新的节点要在这个节点之后添加
temp=temp->link;
while(temp!=NULL)
{
end->link = new StackNode;
end=end->link;
end->data =temp->data;
temp =temp->link;
}
end->link =NULL;
}
}
Stack::~Stack()
{
char next;
while (top!=NULL)
next =pop();
}
BOOL Stack::isempty() const
{
return (top==NULL);
}
void Stack::push(char the_symbol)
{
StackNodePtr temNode = new StackNode;
temNode->data = the_symbol;
temNode->link = top;
top= temNode;
}
char Stack::pop()
{
if (top==NULL)
return 0;
char pResult = top->data;
StackNodePtr temNodePtr = top;
top=top->link;//top指针向下移动一位
delete temNodePtr; //释放那个节点的空间
}
- 一个栈类的实现(链栈)
- C-一个栈的实现
- 一个Timer类的实现
- 一个string类的实现
- String类的一个实现
- 一个简单的栈的实现
- 用一个栈实现另外一个栈的排序
- 图形界面模拟一个顺序栈的实现
- 一个静态数组实现的简单栈
- 一个动态数组实现的简单栈
- C语言一个栈的实现
- c语言一个栈的实现
- 两个队列实现一个栈的功能
- 两个栈实现一个队列的功能
- 用C++实现的一个链栈
- 栈实现的一个小迷宫游戏
- C语言一个栈的实现
- 【C++】一个简单栈的实现
- html框架示例
- sqlserver 批量删除存储过程
- 从儒道释三方面谈学习
- 一个链表类的实现
- oracle IMP 命令详解
- 一个栈类的实现(链栈)
- 忍不住转一段无关技术的,唉。。。。
- Windows Mobile中使用html控件[转]
- 两年JAVA编程经验汇总
- html iframe示例
- 软件项目管理
- 接手数据库前必做的9件事
- 一个封装遗传算法基本操作的类
- 解决PowerDesigner中Name与Code同步的问题。