• 链式队列的c++代码和原理以及编译分析


    链式队列代码:

    编译分析:

    1文件结构:

    image  image

    在初步编写mian

    #include<iostream.h>
    #include<iomanip.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<malloc.h>
    #include"linkqueue.h"
    void mian ()
    {

    }

    编译成功:

    接下来就测试一下是不是真的奏效:

    接下来出错啦

    事实说明,文件之间的构建是一个不小问题;

    之后,发现是main写错成mian,事实证明这是一个容易写错的单词

    调试结果如下:证实全部数据入队:

    image

     image

    这个测试证明在出队操作中,我们一个写法是错的.

    if(rear==p) rear=NULL;
        cerr<<"队列只有一个节点\n";

    修改为

    if(rear==p)

    {rear=NULL;
        cerr<<"队列只有一个节点\n";


    队列链式实现的原理:

    1:在队列中插入一个元素为x的新队尾结点:

    void linkqueue::enqueue(datatype x)
    //
    {
        queuenode *p;
        p=(queuenode *malloc(sizeof(queuenode));//
        p->data=x;
        p->next=NULL;
        if((!queueempity()){ rear->next=p; rear=p;}
            else front=rear=p;
        count++;
    }

    定义指针,申请空间,赋值,完成第一步工作.

    关键在第二步:

    这个问题可以查阅相关课件资料:

    image

    2 在队列中实现出队操作的原理:

    datatype linkqueue::dequeue()
    {   cerr<<"出队操作,你在调用linkqueue::dequeue()函数\n";
        datatype x;
        queuenode *p=front;
        if(queueempty())
        {  cerr<<"队列已经空了\n";exit(1); }
        cerr<<"删除队头,返回队头数据\n";
        x=p->data;
        front=p->next;
        if(rear==p) rear=NULL;
        cerr<<"队列只有一个节点\n";
        count--;
        delete p;
        return x;
    }

  • 相关阅读:
    web中的安全编码
    网站安全(学习)
    head 命令(转)
    less 命令(转)
    简单网站优化
    Yahoo团队总结的关于网站性能优化的经验(转)
    more命令(转)
    linux安装oracle
    Ubuntu系统环境变量配置文件(转)
    nl命令(转)
  • 原文地址:https://www.cnblogs.com/fleetwgx/p/1448494.html
Copyright © 2020-2023  润新知