对数据结构书中代码研读后的感受

26后的晚上对数据结构中的关于链表的一系列代码进行了研读,发现大部分的代码还是可以读懂的,只是有很多细节的地方需要慢慢的推敲,其中链表的删除及元素的插入,这些看起来似乎很是相悖,但内在有很大的联系,并且牵一发而动全身的彼此相关。看懂了一个,很好的理解了其中一个,其他的就很好理解,很好的掌握,这是记住最后的方法。大约只花费了差不多半个多小时的时间,理解并记录了很多之前并非熟悉的代码,内心还是有很大的成就感。

今天第一次写这个博客园的博客,脑袋里却都是刚刚看的代码,就像老师讲的代码就是要先读懂,之后加上勤加练习,才能更好的掌握,拥有更大的代码量。

之后加的编辑:

阅读的代码

void push_stack(seqstack  S, elementtype x){
    if ( S .top == maxsize-1 )  error(“栈满”);
    else {  S .top ++;    S .data [S .top] = x ;}
}

入栈之前判断栈是否已满

void push_stack(seqstack  S, elementtype x){
    if ( S .top == maxsize-1 )  error(“栈满”);
    else {  S .top ++;    S .data [S .top] = x ;}
}
void pop_stack(seqstack S, elementtype &x){
        if  ( stack_empty(S)  ) error(“栈空,不能删除”);
        else  x = S.data[S.top --];
    }
数据的入栈与出栈

bool push(DualStack& DS, Type x, int i) {
     if (DS.t[0]+1 == DS.t[1]) return false;//栈满
     if (i == 0) DS.t[0]++; else DS.t[1]--;//设置栈顶指针
     DS.V[DS.t[i]] = x;   //存入x
     return true;
}

bool Pop(DualStack& DS, Type& x, int i) {
     if (DS.t[i] == DS.b[i]) return false;//栈空
     x = DS.V[DS.t[i]]; //取值并赋给x
     if (i == 0) DS.t[0]--; else DS.t[1]++;//设置栈顶指针
     return true;
}
这个没怎么看懂  

不管是数据结构还是c#以及java和c++等一些程序语言,学到一定的程度之后都是相通的,我认为想要学好的关键在于用心,并且加上每天一点点的代码练习。

posted @ 2019-02-27 22:08  张长锋  阅读(156)  评论(0编辑  收藏  举报