第五周项目2-链栈算法库

来源:互联网 发布:淘宝流量在哪里看手机 编辑:程序博客网 时间:2024/06/06 02:06

通过学习书上和他人的思维模式,感觉非常有收获;需要做的工作有很多抓狂,我要争分夺秒奋斗

main.cpp

#include<bits/stdc++.h>#include"lianzhan.h"using namespace std;int main(){    int a,b,c,d,i;    linknode *p;///并未在主函数中对p分配一块内存空间//    cout<<&p<<endl;//    cout<<p<<endl;    chushi(p);    a=zhanempty(p);    cout<<a<<endl;    jinzhan(p,1);    jinzhan(p,2);    jinzhan(p,3);    jinzhan(p,4);    jinzhan(p,5);    b=zhanempty(p);    cout<<b<<endl;    c=zhanchang(p);    cout<<c<<endl;    display(p);    for(i=0;i<4;i++)    {        cout<<chuzhan(p)<<' ';    }    cout<<chuzhan(p)<<endl;    d=zhanempty(p);    cout<<d<<endl;    //cout<<&p<<endl;    xiao(p);    return 0;}


lianzhan.h

#ifndef LIANZHAN_H_INCLUDED#define LIANZHAN_H_INCLUDEDtypedef struct node{    int data;    node *next;}linknode;void chushi(linknode *&p);void xiao(linknode *&p);int zhanempty(linknode *p);void jinzhan(linknode *&p,int n);int chuzhan(linknode *&p);int quding(linknode *p);void display(linknode *p);int zhanchang(linknode *p);#endif // LIANZHAN_H_INCLUDED

lianzhan.cpp

#include<bits/stdc++.h>#include"lianzhan.h"using namespace std;void chushi(linknode *&p)///初始化{//    cout<<&p<<endl;//    cout<<p<<endl;    p=(struct node *)malloc(sizeof(struct node));//    cout<<p<<endl;    p->next=NULL;}//void xiao(linknode *&p)///销毁栈//{//    linknode *r,*pre=p;//    r=p->next;//    while(r!=NULL)//    {//        free(pre);//        pre=r;//        r=pre->next;//    }//    free(pre);//}void xiao(linknode *&p)///销毁栈{    //cout<<&p<<endl;    linknode *r;    r=p->next;    while(r!=NULL)    {        free(p);        p=r;        r=p->next;    }    free(r);}int zhanempty(linknode *p)///判断栈是否为空{    return (p->next==NULL);}void jinzhan(linknode *&p,int n)///进栈{    linknode *q;    q=(struct node *)malloc(sizeof(struct node));    q->data=n;    q->next=p->next;    p->next=q;}int chuzhan(linknode *&p)///出栈!到了链式结构上,竟然没有反应过来哪里是头,哪里是尾{    if(p->next==NULL)    {        cout<<"栈为空"<<endl;        exit(0);    }    linknode *t;    int f;    t=p->next;    f=t->data;    p->next=t->next;    free(t);    return f;}int quding(linknode *p)///取栈顶元素{    if(p->next==NULL)    {        cout<<"栈为空"<<endl;        exit(0);    }    return p->next->data;}void display(linknode *p){    p=p->next;    while(p->next!=NULL)    {        cout<<p->data<<' ';        p=p->next;    }    cout<<p->data<<endl;}int zhanchang(linknode *p){    linknode *t;    t=p;    int ch=0;    t=t->next;    while(t->next!=NULL)    {        ch++;        t=t->next;    }    return ch+1;}

运行结果:


知识点总结:
  知识点都是类似的,但是总会有新想法和新解法;积极并包容性地学习!对于这个链栈,因为使用了标准化写法与我自己的写法混合型的写法,所以就出现了一些错误;出现错误还是很正常的,不要怕错误,迎难而上!在这个过程中虽然没学到什么新知识,但是我对老知识又有了新的更进一步的理解,初步掌握了一种解决问题的新思路!

心得体会:

  少说多做!

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小腿肚子聚筋了怎么办 6个月婴儿腿弯怎么办 胳膊抻筋拉伤了怎么办 宝宝抻着了怎么办妙招 拎东西胳膊抻了怎么办 小臂一用力筋疼怎么办 摔破胳膊很痛怎么办 胳膊的筋扭伤了怎么办 小孩胳膊抻筋了怎么办 肩膀抻着了怎么办妙招 右边肩膀抻着了怎么办 胳膊因劳累很痛怎么办 宝宝胳膊摔了疼怎么办 宝宝胳膊抻筋了怎么办 孕妇胳膊筋伤了怎么办 刚进公司就怀孕怎么办 撞到胳膊麻筋了怎么办 腰抻了怎么办多久能好 腰突然抻了一下怎么办 干活抻筋了 很疼怎么办 胳膊抻筋一动就疼怎么办 肩膀受风了很疼怎么办 开空调受风了怎么办 胳膊受风了疼怎么办 孩子胳膊抻筋了怎么办 胳膊被风吹了疼怎么办 月子里胳膊受风怎么办 受风了胳膊酸痛怎么办 胳膊受风了在家怎么办 手臂烧伤手肿了怎么办 胳膊里的筋疼怎么办 3岁胳膊背筋了怎么办 左胳膊筋一直疼怎么办 手臂突然筋扭了怎么办 胳膊扭了肿了怎么办 胖人走路磨大腿怎么办 脖子上长了个淋巴结怎么办 面部危险三角区长痘痘怎么办 儿童脖子上有淋巴结节怎么办 左侧颈根部淋巴结肿大怎么办 人的三角区肿了怎么办