第七周---队列数组

玄机-Linux权限维持-后门 阅读详情
/*
 *Copyright (c) 2015 烟台大学计算机与控制工程学院
 *All right reserved.
 *标题:数据结构实践——队列数组
 *作者:杨珺
 *date:2015年10月13日
 *版本:V1.0.1
 *操作系统:XP
 *运行环境:VC6.0
 *问题描述: 创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。
            输入若干个正整数,以数字0作为结束。设输入的值为x,
            其个位数字的大小为i,则将x插入到编号为i的队列中。最后输出所有的非空队列。 
            要求将队列处理成链式队列,使用链式队列算法库中定义的数据类型及算法,
            程序中只包括一个函数(main函数),入队和出队等操作直接在main函数中调用即可。 
*/
liqueue.h:
#ifndef LIQUEUE_H_INCLUDED
#define LIQUEUE_H_INCLUDED

typedef int ElemType;
typedef struct qnode
{
    ElemType data;
    struct qnode *next;
} QNode;        //链队数据结点类型定义

typedef struct
{
    QNode *front;
    QNode *rear;
} LiQueue;          //链队类型定义
void InitQueue(LiQueue *&q);  //初始化链队
void DestroyQueue(LiQueue *&q);  //销毁链队
bool QueueEmpty(LiQueue *q);  //判断链队是否为空
int QueueLength(LiQueue *q);  //返回队列中数据元素个数
void enQueue(LiQueue *&q,ElemType e);  //入队
bool deQueue(LiQueue *&q,ElemType &e);   //出队



#endif // LIQUEUE_H_INCLUDED


liqueue.cpp:

#include <stdio.h>
#include <malloc.h>
#include "liqueue.h"

void InitQueue(LiQueue *&q)
{
    q=(LiQueue *)malloc(sizeof(LiQueue));
    q->front=q->rear=NULL;
}

void DestroyQueue(LiQueue *&q)  //销毁链队
{
    QNode *p=q->front,*r;   //p指向队头数据节点
    if (p!=NULL)            //释放数据节点占用空间
    {
        r=p->next;
        while (r!=NULL)
        {
            free(p);
            p=r;
            r=p->next;
        }
    }
    free(p);
    free(q);                //释放链队节点占用空间
}

bool QueueEmpty(LiQueue *q)
{
    return(q->rear==NULL);
}
int QueueLength(LiQueue *q)  //返回队列中数据元素个数
{
    int n=0;
    QNode *p=q->front;
    while (p!=NULL)
    {
        n++;
        p=p->next;
    }
    return(n);
}
void enQueue(LiQueue *&q,ElemType e)
{
    QNode *p;
    p=(QNode *)malloc(sizeof(QNode));
    p->data=e;
    p->next=NULL;
    if (q->rear==NULL)
        q->front=q->rear=p;
    else
    {
        q->rear->next=p;
        q->rear=p;
    }
}
bool deQueue(LiQueue *&q,ElemType &e)
{
    QNode *t;
    if (q->rear==NULL)
        return false;
    t=q->front;
    if (q->front==q->rear)
        q->front=q->rear=NULL;
    else
        q->front=q->front->next;
    e=t->data;
    free(t);
    return true;
}


main.cpp:

#include <stdio.h>
#include <malloc.h>
#include "liqueue.h"
#define N 10

int main()
{
    int i, a;
    LiQueue *qu[N]; //定义队列指针数组
    for (i=0; i<N; i++)
        InitQueue(qu[i]);       //初始化队列

    //为队列中加入值
    printf("输入若干正整数,以0结束: ");
    scanf("%d", &a);
    while(a)
    {
        enQueue(qu[a%10], a);
        scanf("%d", &a);
    }

    //输出各个队列
    printf("按个位数整理到各个队列中后,各队列出队的结果是: \n");
    for (i=0; i<N; i++)
    {
        printf("qu[%d]: ", i);
        while(!QueueEmpty(qu[i]))
        {
            deQueue(qu[i], a);
            printf("%d ", a);
        }
        printf("\n");
    }

    //销毁各个队列
    for (i=0; i<N; i++)
        DestroyQueue(qu[i]);
    return 0;
}


运行结果:

知识总结:

        本项目中使用的队列数组,实际上需要将十个链队的指针,顺序存储到一个数组中即可,如下定义:  LiQueue *qu[10]; //qu是数组,数组中存储指针,存储的是指向LiQueue类型的指针。

    根据输入数除余10的余数来把输入数值归队。


 


DeepSeek-OCR安装部署文档和避坑指南,包含大多数人遇到的安装报错问题 DeepSeek-OCR安装部署指南摘要:本文详细介绍高性能OCR工具DeepSeek-OCR的安装流程,支持多语言识别和复杂场景文字提取。系统要求包括Linux/Windows/macOS操作系统,推荐NVIDIA显卡(显存≥6GB)和≥16GB内存。安装步骤涵盖:1)创建conda虚拟环境;2)安装PyTorch等核心依赖;3)解决常见问题如CUDA版本冲突、模型下载慢等。提供GPU内存不足等问题的解决方案,帮助开发者快速部署OCR服务。(149字) 阅读详情

相关推荐

CMake安装grpc生成gRPCTargets.cmake文件

以下是安装语句: cd grpc_folder git submodule update --init cmake .. make -j 4 sudo make install 然而编写依赖gRPC的程序,发现无法调用gRPC的CMake文件,错误提示如下所示: include could not find load file: /usr/local/lib/cmake/g...

2331

Objective-C学习笔记-init

1.如果一个类没有实现init方法,那么在调用init初始化的时候所有成员变量都会被初始化为0 2.覆盖NSObject的init方法,instancetype代表返回当前类的实例,在旧版本OC里,还会使用id作为返回类型。因为基类的构造函数有可能返回nil,所以这里需要判断是否为空,这是苹果公司推荐写法,不过很多代码没有做这一步检查 -(instancetype)init { se...

天道酬勤 678

【论文精读】Latent Diffusion

Latent Diffusion

weixin_44934783的博客 4477

数据结构基本操作_数据结构(C语言)-链队列基本操作

导语 队列是一种先进先出(first in first out,FIFO)的线性表,是一种常用的数据结构。 它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。图1 队列队列有很多种,按照存储结构划分,有链式队列,循环队列,单向队列,...

weixin_35418139的博客 388

Androiud安卓链接sqllite的代码使用案例

【代码】Androiud安卓链接sqllite的代码使用案例。

laterstage的博客 1328

Windows 11 安装、使用 Git:下载、安装、概念、命令、分支模型

本文详细介绍了在 Windows 11 系统上安装与使用 Git 的完整流程,涵盖从官方或国内镜像下载安装包、关键安装选项配置,到 Git 核心概念(如工作区、暂存区、分支、远程仓库等)的通俗解释。同时梳理了常用命令与五种主流 Git 分支模型(如 Git Flow、GitHub Flow 等),帮助开发者根据项目规模选择合适的工作流,是面向初学者与进阶用户的实用指南。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2389

队列数据结构详解

1.队列既可以用链表实现,也可以用顺序表实现。跟栈相反的是,栈一般用顺序表来实现,而队列我们常用链表来实现,称为链队列,它是后入前出(头结点进,尾结点出),头结点不存元素 实现代码: typedef struct QNode//定义队列的链表结点 { ElemType data; struct QNode *next; }QNode,*QueuePrt; typedef struct { QueuePrt front,rear;//队头,尾指针 }LinkQueue; 代码思路:队列数据结构的定义和

slgcsdn的博客 2512

【智能车Code review】—曲率计算、最小二乘法拟合

【1】曲率计算函数 选三个点计算曲率 float process_curvity(byte x1, byte y1, byte x2, byte y2, byte x3, byte y3) { float K; int S_of_ABC = ((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / 2; //面积的符号表示方向 byte q1 = (byte)((x2 - x1) * (x2 - x1) + (y2 - y1) *

hanhan的博客 1万+

链队列的简单操作

#include <stdio.h> #include <stdlib.h> /** *zi */ typedef int QElemType; typedef struct Qnode{ QElemType data; struct Qnode *next; }QNode,*QueuePtr; typedef struct{ QueuePtr front;//队头指针 QueuePtr rear;//队尾指针 }LinkQueue; vo.

m0_51985177的博客 170

Unity之ASE如何实现UV扰动闪电效果

UV扰动,顾名思义,就是通过干扰原贴图的UV,使UV发生变化,导致贴图出现会动的效果,如果我们贴图和扰动的速度调整的刚好合适的话,会出现一些非常棒的效果,比如下图所示的闪电效果:好了,一个简单的UV扰动就讲完了,同学们可以发挥想象力,我们是否可以利用UV扰动的原理,做一点别的炫酷的效果出来,比如,交错流动,流光效果等等。很期待你的留言,这篇文章就到这里,希望对你有所帮助。

TxNet 1791

Ubuntu18.04安装VCS、Verdi、dve全套教程亲测(有成功截图)

通过下面十个步骤,我们就可以在ubuntu上使用vcs、verdi、dve等软件! 一、安装ubuntu系统,这个不在这里讲了,重点叫安装VCS、Verdi等软件 下面的过程一部分同其他网上流程一致,对其中部分进行修改。如果按照其他网上教程是不会成功的,本人亲测,下面是我试验网上不同文章的流程遇到的错误摸索后总结的流程,按照步骤保证可以成功运行,包括破解流程,使用时间不限制在2020年,可以自定义2030等等。 二、安装文件结构 –synopsys_installer #此程序用于安装下面三个程序。所以你想

QQ_778132974的博客 6365

【数据结构】队列的基本操作

编写程序,实现链式、循环队列的基本操作。

Jesonary的博客 2857

微信开发 - 最新第三方网站接入微信登录、微信支付时,本地 redirect_uri 参数错误导致无法调试的解决方案(微信开放平台)完美解决每次都需要部署到线上测试,在本地使用本地 ip 就能轻松调试

redirect_uri参数错误,微信第三方登录,没有服务器时的测试方法,微信开放平台的回调域名怎么设置为本地域名IP,微信登录微信支付每次调试都需要放到服务器上怎么办,微信登录支付业务在本地调试不了怎么办,在本地怎么测试微信支付和登录,微信第三方登陆本地测试,怎么在本地进行测试,微信回调域怎么设置为本地IP,微信扫码登录redirect_uri参数错误,微信开放平台,微信开放平台开发的第三方登录和支付,vue2,nuxt2,vue3,nuxt3,uniapp,微信开放平台,公众号,微信支付,微信登录授权,

🏆 前端领域优质创作者 8791

第七周上机实践项目4——队列数组

问题及代码: 测试函数:main.cpp,完成相关的测试工作; /* *Copyright(c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:test.cpp *作者:颜肖璇 *完成日期:2015年10月16日 *版本号:v1.0

yxxhilda的博客 487

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

第七周 队列数组

*Copyright (c) 2017, 烟台大学计算机学院   *All rights reserved.    *作    者:李浩南   *完成日期:2017年10月19日   *版 本 号:v1.0  *问题描述:创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。输入若干个正整数,以数字0作为结束。设输入的值              

qq_37151970的博客 235

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

第七周 队列数组

/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第七周 项目队列数组 作 者:纪冬雪 完成日期:2015年10月23日 版 本 号:v1.0 问题描述:创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。输入若干个正整数,以数字0作 为结束。设输入的值为

jdxjdxjdx的博客 356

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

第七周 项目四 队列数组

/*问题及代码 *Copyright(c)2016,烟台大学计算机学院 *All right reserved. *文件名称:队列数组.cpp *作者:李潇 *完成日期;2016年10月9日 *版本号;v1.0 * *问题描述: 创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。输入若干个正整数,以数字0作为结束。设输入的值为x,其个位数字的大小为i,

sdlixiao6的博客 301

第七周项目四—队列数组

/*      Copyright (c)2015,烟台大学计算机与控制工程学院      All rights reserved.      文件名称:第7周项目项目4 - 队列数组.cpp      作    者:李丛丛     完成日期:2015年10月23日      版 本 号:v1.0            问题描述:创建10个队列,分别编号为0-9(处

licongcongv1的博客 423

第七周项目四——队列数组

*Copyright(c)2017,烟台大学计算机与控制工程学院  *All rights reserved.  *文件名称:cpp1.cpp  *作    者:李英荣  *完成日期:2017年12月26日  *版 本 号:v1.0  *问题描述: 创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。  输入若干个正整数,以数字0作为结束。设输入的值为x,其个位数字的大

lyr19971002的博客 307

【第七周项目4】队列数组

/* Copyright (c)2017,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:22.cpp 作 者:尚文哲 完成日期:2017年10月16日 问题描述:创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。输入若干个正整数,以数字0作 为结束。设输入的值为x,其个位数字的大小为i,则将x插入到编号

swzzz的博客 208

第七周项目4队列数组

 问题及描述: /* *Copyright(c++)2015,烟台大学计算机与控制工程学院 *All rights reserved, *文件名称:test.cpp *作 者:程梦莹 *完成日期:2015年10月14日 *版本号:v1.0 *问题描述: 创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。输入若干个正整数,以数字0

cmy0106的博客 511

第七周项目四 队列数组

/*   Copyright (c)2016,烟台大学计算机与控制工程学院   All rights reserved.     作    者:王晓慧  完成日期:2016年10月14日   版 本 号:v1.0         问题描述:创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。            输入若干个正整数,以数字0作为结束。设输入的值为x,其

wangxiaohui6128的博客 205

第七周 项目4 队列数组

问题及描述: /* 烟台大学计控学院 作 者:白晓娟 完成日期:2016.10.08 问题描述:创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。输入若干个正整数,以数字0作为结束。设输入的值为x,其个位数字的大小为i,则将x插入到编号为i的队列中。最后输出所有的非空队列。 要求将队列处理成链式队列,使用链式队

S1E2L3的博客 320

第七周项目4 -队列数组

问题描述及代码 /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:队列数组.cpp *作 者:张雯婧 *完成日期:2016年10月7日 *问题描述:创建10个队列,分别编号为0-9(处理为队列数组,编号即下

zwj201558506220的博客 438

第七周 项目4-队列数组

/* *2015,烟台大学计算机控制工程学院 *All rights reserved *文件名称:lequeue.cpp *作者:邱暖 *完成日期:2015年10月16日 *问题描述:创建10个队列,分别编号为0-9,输入若干个整数,以数字0作为结束。 *设输入的值为X,其个位数字的大小为i,则将X插入到编号为i的队列中。最后输出所有的非空队列。 *问题要求:将队列处理成环形队列

q6826的博客 409
上一篇: 第七周--负数把正数赶出队列
下一篇: 第七周--排队看病模拟
杨珺
博客等级 码龄11年 31粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值