链栈来袭^^数据结构

前言:

学习了顺序表,链表,顺序栈。链栈。如果不及时复习的话,有时候会搞糊涂,当然画图还是最重要的啦。顺序栈和链栈都是运算受限的单链表,只能在栈顶操作。现在是11点整,估计能在一个小时敲完这篇文章。大胆预测,开学即大二。所以现在的时光就是我们自己所掌握的时光,一些网课可以说有用,但没必要。抬头一看,已经一个月没上数学课和英语课了。心里有一点的慌张,躺在手机里的数学视频也不知道什么能在重见天日。
总有一天吧,但我不希望是考试前夕。
废话不说了。开饭
链栈
链栈和链表相似,都有一个数据域,指针域。但是链栈指针域指的还是指针域,这一点就和链表不一样了。说说链栈的操作吧
1.链栈的定义
2.链栈的初始化
3.链栈的入栈
4.链栈的出栈
5.取栈顶元素
6.判断链栈是否为空

链栈的定义

typedef struct StackNode
{
SElemType data;
struct StackNode *next;/*指针域*/
}StackNode,*LinkStack;
LinkStack S;/*取别名S*/

链栈的初始化

void  InitStack(LinkStack S)
{
S = NULL/*链栈的初始化,就是栈顶为NULL*/
return ok;}

链栈的入栈


Status Push(LinkStack &S,SElemType e)
{
new p;
p ->next = s;/*我们在创建一个p,然后我们需要做的是将P放在S的上头,需要这两个操作来达到目的*/
p-data = e;
s=p;
return ok;}

链栈的出栈
Status pop(LinkStack %S,SElemType &e)
{
if (S==NULL)
return error;
new p;/我们将s赋值给p,我们目的是释放栈顶的元素。因此我们将P释放,将s下移,即S= S-next;这样 我们达到了目的/

e =S->data;
p = S;
S = S->next;
free§;
return ok;}

判断栈顶是否为空

Status StackEmpty(LinkStack S)
{
if (S==NULL)
return error;
else 
return ok;}

取栈顶元素

SElemType GetTOP(LinkSTAck &S)
{
if(s!=NULL)
return s.data;}

现在我们关于链栈的知识已经结束了。明天还有数据结构的课,要讲串了等会下午还要学习python 。所以中午两个小时的时间我要去看 C 语言的字符串去了。还要上机操作写程序发到微信群里面。emmmm,任务还是挺多的。一样一样来吧。预计这个周末会写一篇完整的顺序表的程序。

发布了5 篇原创文章 · 获赞 0 · 访问量 57
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览