再回首,数据结构——顺序栈上的常见操作
2015-05-28 11:08
411 查看
最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会。
希望这些能提供给初学者一些参考。
//顺序栈的类型
#define MaxSize N
typedef struct
{
ElementType elem[MaxSize];
int top;
}SeqStack;
//初始化堆栈 StackInit()
SeqStack StackInit (SeqStack *s)
{
s->top = -1;
return s;
}
//判断栈s是否为空 StackEmpty(s)
int StackEmpty (SeqStack s)
{
return (-1 == s.top);
}
//求堆栈的长度 StackLength(s)
int StackLength (SeqStack s)
{
return (++s.top);
}
//获取栈顶元素的值 GetTop(s)
int GetTop (SeqStack s)
{
if (StackEmpty(s))
return (nil);
return (s.elem[s.top]);
}
//将元素e进栈 Push(s, e)
void Push (SeqStack *s, ElementType e)
{
if (MaxSize-1 == s->top)
printf ("Full");
else
{
s->top++;
s->elem[s->top] = e;
}
}
//出栈 Pop(s)
ElementType pop (SeqStack *s)
{
if (StackEmpty (*s))
return (nil);
e = s->elem[s->top];
s->top--;
return (e);
}
希望这些能提供给初学者一些参考。
//顺序栈的类型
#define MaxSize N
typedef struct
{
ElementType elem[MaxSize];
int top;
}SeqStack;
//初始化堆栈 StackInit()
SeqStack StackInit (SeqStack *s)
{
s->top = -1;
return s;
}
//判断栈s是否为空 StackEmpty(s)
int StackEmpty (SeqStack s)
{
return (-1 == s.top);
}
//求堆栈的长度 StackLength(s)
int StackLength (SeqStack s)
{
return (++s.top);
}
//获取栈顶元素的值 GetTop(s)
int GetTop (SeqStack s)
{
if (StackEmpty(s))
return (nil);
return (s.elem[s.top]);
}
//将元素e进栈 Push(s, e)
void Push (SeqStack *s, ElementType e)
{
if (MaxSize-1 == s->top)
printf ("Full");
else
{
s->top++;
s->elem[s->top] = e;
}
}
//出栈 Pop(s)
ElementType pop (SeqStack *s)
{
if (StackEmpty (*s))
return (nil);
e = s->elem[s->top];
s->top--;
return (e);
}
相关文章推荐
- 再回首,数据结构——字符串与数组的常见操作(顺序存储)
- 再回首,数据结构——循环队列上的常见操作
- 再回首,数据结构——链式队列上的常见操作
- 再回首,数据结构——顺序表的常见算法
- 再回首,数据结构——链表上的常见操作
- 再回首,数据结构——链栈上的常见操作
- 再回首,数据结构——字符串与数组的常见操作(链式存储,包含朴素匹配算法等)
- 数据结构之顺序表的基本操作
- 数据结构之线性表(顺序表)的基本操作
- 数据结构-顺序表的基本操作
- 【数据结构】顺序栈的基本操作操作---C/C++
- 【1138】数据结构上机测试2-1:单链表操作A(顺序建表+删除节点)(SDUT)
- 数据结构(顺序表的两个操作)
- 数据结构——顺序表初操作
- 数据结构(1)——顺序表 交并差等基本操作
- 【MOOC·数据结构】顺序表的操作
- 严蔚敏数据结构顺序表的所有基本操作
- 数据结构(一)顺序表3:顺序表常见题型
- 【1138】数据结构上机测试2-1:单链表操作A(顺序建表+删除节点)(SDUT)
- 数据结构:顺序表的基本操作