小甲鱼 发表于 2013-2-4 16:48:32

第二十九讲 栈和队列7(视频+课件+源代码)

该讲座视频下载地址:

http://blog.fishc.com/2139.html


该讲座所需课件:





注:VIP会员享有免费下载本站所有资源的特权!

友情提示:通过购买鱼C光盘/优盘打包(具体内容)均可加入VIP终身会员^_^



刺骨之剑 发表于 2013-2-4 17:18:32

支持了顶个……{:1_1:}

叶振凯 发表于 2013-2-18 01:17:50

每个都下载了,哈哈:lol

pro_xk 发表于 2013-2-18 08:59:03

20鱼币,是不是太···:$

“Hello__World 发表于 2013-3-15 20:23:17

为啥就20个鱼币,太贵了C才5个还不好,好不好

魔火 发表于 2013-7-22 12:39:18

20鱼币好贵呀!!!!!!!!!

(_真痛 发表于 2013-11-29 21:31:20

我真的很感悟……:huffy:

小泉向西流 发表于 2014-7-10 15:11:43

本帖最后由 小泉向西流 于 2014-7-10 15:15 编辑

队列的出入输出作业:
#include <stdio.h>
#include <stdlib.h>

typedef char ElemType;
typedef struct QNode
{
    ElemType data;
    struct QNode *next;
}QNode, *QueuePrt;

typedef struct
{
    QueuePrt front, rear;
}LinkQuene;

void InitQuene(LinkQuene *q)
{
    q->front=q->rear=(QueuePrt)malloc(sizeof(QNode));
    if(!q->front)
      exit(0);
    q->front->next=NULL;
}

void InsertQueue(LinkQuene *q, ElemType e) //入队
{
    QueuePrt p;
    p=(QueuePrt)malloc(sizeof(QNode));
    if(p==NULL)
      exit(0);
    p->data=e;
    p->next=NULL;
    q->rear->next=p;
    q->rear=p;
}

void DeleteQuene(LinkQuene *q, ElemType *e)//出队
{
    QueuePrt p;
    if(q->front==q->rear)
      return ;
    p=q->front->next;
    *e=p->data;
    q->front->next=p->next;
    if(q->rear == p)
      q->rear=q->front;
    free(p);
}

void DestroyQuene(LinkQuene *q)   //销毁队列
{
    while(q->front)
    {
      q->rear=q->front->next;
      free(q->front);
      q->front=q->rear;
    }
    q->front=NULL;
}

void GetHead(LinkQuene *q)         //获取队列的第一个元素,并输出
{
    QueuePrt p=q->front->next;
    printf("%c\n", p->data);
}

void PrintQuene(LinkQuene *q)    //队列输出
{
    QueuePrt p;
    p=q->front->next;
    while(p)
    {
      printf("%c", p->data);
      p=p->next;
    }
}

int main()
{
    QNode q;
    char c,e;
    InitQuene(&q);

    printf("请输入一串字符,以#表示结束:\n");
    scanf("%c", &c);
    while(c!='#')
    {
      InsertQueue(&q, c);
      scanf("%c", &c);
    }
    getchar();

    printf("队列的第一个字符为: ");
    GetHead(&q);
    printf("\n");

    printf("队列输出: ");
    PrintQuene(&q);
    printf("\n\n");

    DeleteQuene(&q,&e);
    printf("删除的元素为:%c\n",e);
    printf("新的队列输出:");
    PrintQuene(&q);
    printf("\n\n");

    return 0;
}



owen321 发表于 2014-10-11 23:00:58

中缀表达式转换为后缀表达式的时候在判断c是否为*或者/号时,应该先判断栈顶得元素是否为*或者/吧,如果栈顶是*或者/,Pop栈顶元素,然后printf输出,再将新输入的*或者/入栈。小甲鱼老师是直接push进栈了。

mrlonely1002 发表于 2014-11-14 21:25:55

小泉向西流 发表于 2014-7-10 15:11
队列的出入输出作业:

支持顶啊

天外飞mao 发表于 2015-3-14 15:57:00

强烈支持甲鱼ing……

天外飞mao 发表于 2015-3-14 16:09:42

楼上是自己写的吗?

Mr.Evil 发表于 2015-4-14 10:32:54

来学习学习

xxzj01 发表于 2015-4-14 20:37:17

太生气了,无法HOLD啦 >_<......怎么和视频不是对应的程序文件。我要下的是中缀转后缀的程序啊啊啊啊啊啊,害我花了20<。)#)))≦币:mad:

xxzj01 发表于 2015-4-14 20:39:25

中缀转后缀的程序中有个函数Push,总报错。大神帮忙看看错哪了。int Push(sqStack *s,ElemType e)
{
        //栈满,追加空间
        if(s->top - s->base >= s->stackSize)
        {
                s->base = (ElemType *)realloc(s->base,(s->stackSize + STACKINCREMENT))*sizeof(ElemType);
               
                if(!s->base)
                        exit(0);
               
                s->top = s->base + s->stackSize;
                s->stackSize = s->stackSize + STACKINCREMENT;
        }
       
        *(s->top) = e;// to store data
        s->top++;
       
}


Furk 发表于 2015-5-5 17:54:32

只有18鱼币啊

985686554 发表于 2016-1-4 21:23:22

20币。。。。。

鱼小鱼c 发表于 2016-5-29 14:40:51

加油加油

1090176349 发表于 2016-11-23 15:23:09

good good study

akyl56 发表于 2018-8-25 16:57:04

本帖最后由 akyl56 于 2018-8-25 17:03 编辑

学习一下
页: [1] 2
查看完整版本: 第二十九讲 栈和队列7(视频+课件+源代码)