iOS计算机杂谈互联网科技

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

2017-08-14  本文已影响220人  张照博

正文之前

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

正文


#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啊。信手捏来!~~今天下午就不写码了。老老实实看数学,不过在此之前还是要睡一会的。在家最大的优点就是:睡眠质量杠杠滴!!虽然老妈比较烦,又想拽着我去走人家。才不去!!!

运行结果:


--------------
|   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精神,还是帮助了我,在网上看了两集[信号]之后,今天又重新开始面对一切。待会儿下午和晚上想把第四章看完,不知道能不能做到!加油吧总之!!
下午刚死数学全书第四章--向量空间!!!

上一篇下一篇

猜你喜欢

热点阅读