前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【我的漫漫跨考路】数据结构之堆栈的线性实现

【我的漫漫跨考路】数据结构之堆栈的线性实现

作者头像
用户1687088
发布2018-05-07 16:49:33
5280
发布2018-05-07 16:49:33
举报

正文之前

昨天晚上阶段性的完成了一部分数学的复习(一元积分学终于搞定了,后面的貌似没这么难了),所以今天打算撸一撸代码,结合前几天写的链表实现线性存储,今天花了个把小时实现了线性存储-线性表的实现(我知道还有太多可以优化的地方,但是目前考研只要结果,不看优化,后面要的话我会在复试的准备中学习~~~这算不算立个过初试的Flag?)跪求看完的大神在下面给我贴出优化代码我来学习学习!! 废话不多说,有疑问的,有意见的,咱们评论区见:

正文

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 8
//注:定义堆栈
typedef struct Stack
{
    int Data[MAXSIZE];
    int  Top;
} Stack,*PtrS;




PtrS InitList()
{
    PtrS ptrs;

    //注:不知道是MAXSIZE 还是不要,不过乘上总归是没错的!
    ptrs=(PtrS)malloc(sizeof(Stack));
    //注:初始栈顶指针指向0,第一次复制就有了Data[0]=Data[Last],方便复用
    ptrs->Top=-1;
    //注:讲初始化后的堆栈传回
    return ptrs;
}

void Push(PtrS ptrs,int data)
{
    if (ptrs->Top==MAXSIZE-1)
    {
        printf("Full Full!!\n" );
    }
    else
    {
        ptrs->Data[++(ptrs->Top)]=data;
    }
}


int Pop(PtrS ptrs)
{
    if (ptrs->Top==-1)
    {
        printf("Empty  Empty!!\n" );
        printf("Go Away 我被掏空啦!\n");
        return 0;
    }
    else
    {
        ptrs->Top--;
        return    ptrs->Data[(ptrs->Top+1)];

    }
}

void ShowStack(PtrS ptrs)
{
    int i,num;
    for (i=ptrs->Top; i >= 0; --i)
    {
        num=Pop(ptrs);
        printf("%d is poped\n",num);
    }
}



int main()
{
    PtrS ptrs;
    ptrs=InitList();
    Push(ptrs,5);
    Push(ptrs,4);
    Push(ptrs,3);
    Push(ptrs,2);
    Push(ptrs,1);
    printf("\n--------------\n| \tfuck  \t|\n--------------\n" );
    ShowStack(ptrs);

}

一鼓作气,承受着我老妈吃饭时候的怒吼连连,我也把堆栈的线性实现写出来了。果然越到后面越6啊。信手捏来!~~今天下午就不写码了。老老实实看数学,不过在此之前还是要睡一会的。在家最大的优点就是:睡眠质量杠杠滴!!虽然老妈比较烦,又想拽着我去走人家。才不去!!!

运行结果:

代码语言:javascript
复制
--------------
|     fuck    |
--------------
1 is poped
2 is poped
3 is poped
4 is poped
5 is poped
Program ended with exit code: 0

正文之后

我决定了,初始写码用sublime,而且神奇的发现很多C的基本语法没有自动补全,这岂不是上天助我?考研的时候那破机器,报错都成问题,自动补全做美梦呢?可以锻炼我的严谨程度,防止习惯了自动补全,自动纠错之后再来写代码就是破破烂烂的那种情况了。不过Xcode的纠错能力很强啊。而且sublime没有单步运行能力,但是Xcode作为苹果当家开发工具,妥妥的!

(为了凑字数)再多说两句(上一篇讲过的~~),考研可真不是一个简单的事情,这是比高考更加让人绝望的东西。因为高考之前你全心全意都只能为高考而准备,然而在考研之前有太多太多的东西会来阻挠你。不仅仅是因为没有人监督,没有人共同作战,而且也是因为难度骤增,这些东西你可能已经忘了两三年了(更有甚者几乎等于没学过),再捡起来的时候,就没有当初那么充足的时间来让你慢吞吞的学了。而且连考四门并且每门基本上没有任何关联。光是安排就会让你手足无措。昨天下午的时候,我整个人都萎靡不振,对于微积分的那些东西,也是半天想不出来,只能看答案,我都有点怀疑人生了。但是幸亏,我的阿q精神,还是帮助了我,在网上看了两集[信号]之后,今天又重新开始面对一切。待会儿下午和晚上想把第四章看完,不知道能不能做到!加油吧总之!! 下午刚死数学全书第四章--向量空间!!!

另外,弱弱的求个关注,看官老爷们有话直接留言~我俩随时关注~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 工科狗和生物喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文之前
  • 正文
  • 正文之后
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档