链表栈的基本操作包括栈的建立、求长度、取栈顶元素、入栈、出栈、判断栈是否空等具体操作。
//调试环境:DevC++
//库文件和预设定义
#include
#include
#define Stack_Length 6
#define OK 1
#define ERROR 0
typedef int SElemType;
//存储形式
typedef struct SNode
{
S...
分类:
其他好文 时间:
2015-05-22 15:14:29
阅读次数:
133
今天总结链栈。
什么是链栈?
链栈就是栈的链式存储结构,就跟单链表差不多。只不过头指针变成了栈顶指针,这个指针总是指向栈顶元素。栈底结点的指针域指向NULL,当top==NULL时,则栈为空.具体实现时,对比着单链表,然后结合图示,很容易就写出来了。
图示:
实现:
#include
using namespace std;
template
struct Node {
...
分类:
编程语言 时间:
2015-05-13 10:38:33
阅读次数:
186
1.链队列。利用带有头结点的单链表来实现链队列,插入和删除的复杂度都为o(1)
代码:
#include
#include
typedef struct Qnode
{
int data;
Qnode *next;
}Qnode;
typedef struct LinkQueue
{
Qnode *front;
Qnode *rear;
}LinkQueue;
vo...
分类:
编程语言 时间:
2015-05-07 20:30:24
阅读次数:
163
栈的链式存储1 栈的链式表示
栈的链式存储结构称为链栈,是运算受限的单链表。其插入和删除操作只能在表头位置上进行。因此,链栈没有必要像单链表那样附加头结点,栈顶指针top就是链表的头指针。图3-4是栈的链式存储表示形式。链栈的结点类型说明如下:
typedef struct Snode
{ ElemType data ;
struct Snode *next ;
} SNo...
分类:
其他好文 时间:
2015-04-29 09:56:46
阅读次数:
123
stack.h 1 #ifndef _STACK_H 2 #define _STACK_H 3 4 #include 5 #include 6 7 typedef struct StackNode 8 { 9 int data;10 struct StackNode* next;...
分类:
其他好文 时间:
2015-04-15 16:31:42
阅读次数:
119
栈链数据链接示意图
top为指向最后的节点的指针,栈头为一个NULL空地址
1、头文件
head.h
#ifndef __linkstack_H__
#define __linkstack_H__
#include
#include
typedef int datatype;
typedef struct node{
datatype data;
struc...
分类:
其他好文 时间:
2015-04-11 13:16:20
阅读次数:
137
1 #include 2 using namespace std; 3 4 struct Node 5 { 6 int data; 7 Node *next; 8 }; 9 10 /*初始化链栈*/11 void InitChainStack(Node *top)12 {13 ...
分类:
编程语言 时间:
2015-03-31 15:57:21
阅读次数:
189
队列 和 栈 是 一种 受限制的 线性表。所以 他们的 实现方式 都 相差 无几。之前有过 链栈 和 链式线性表 的 实现经验,自然 写 链队 ,也毫无问题。
下面详细讲解每一段代码 的技术要点
下面是队列节点的数据结构
struct QueueNode
{
ElementType data;
QueueNode * next;
};
//生成一个节点
QueueNode * ...
分类:
其他好文 时间:
2015-03-06 12:50:50
阅读次数:
177
一、基本概念1.栈是限定仅在表尾(栈顶)进行插入和删除操作的线性表;2.栈:后进先出(LIFO),适用于撤销操作二、存储结构1.栈的顺序存储结构:1)数组的首元素作栈底2)两栈共享空间2.栈的链式存储结构:链栈不需要头结点三、栈的应用:1.经典递归例子:斐波那契数列递归函数:直接调用自己或通过一系列...
分类:
其他好文 时间:
2015-03-05 16:13:13
阅读次数:
213
在写链栈的时候 和 顺序栈一样 犯了两个错误: 一个是 在 入栈 和 进栈顶时候 忘记 操作 linkstack.len 了,另一个是 在写 stackClear 的时候 犯了一个 低级的内存错误。
这两个问题 都是 粗心造成的。
希望 引以为戒。
上代码:
// LinkStack.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#includ...
分类:
其他好文 时间:
2015-03-02 14:57:13
阅读次数:
159