*第七周*数据结构实践项目二【建设链式队列算法库】

JSON(详解) JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的文本格式来存储和表示数据,通常用于在不同的系统之间进行数据交换。JSON数据以键-值对的形式组织,可以包含对象、数组、字符串、数字等基本数据类型。它经常在Web开发、API通信等领域被广泛使用。 阅读详情

  建设链式队列算法库,我采用了多文件系统的方式,将程序分为三个部分,头文件、源程序、主函数。


  头文件:

/*

    Copyright (c) 2015,烟台大学计算机与控制工程学院
    All righs reserved
    文件名称:litack.h
    作者: 李哲
    完成日期:2015年10月14日

    问题描述:建设链式队列算法库
    程序说明:头文件


*/

#ifndef LIQUEUE_H_INCLUDED
#define LIQUEUE_H_INCLUDED

typedef char 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


源程序:


/*

    Copyright (c) 2015,烟台大学计算机与控制工程学院
    All righs reserved
    文件名称:litack.h
    作者: 李哲
    完成日期:2015年10月14日

    问题描述:建设链式队列算法库
    程序说明:源代码


*/

#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;    //将*p节点链到队尾,并将rear指向它
        q->rear=p;
    }
}
bool deQueue(LiQueue *&q,ElemType &e)   //出队
{
    QNode *t;
    if (q->rear==NULL)      //队列为空
        return false;
    t=q->front;             //t指向第一个数据节点
    if (q->front==q->rear)  //队列中只有一个节点时
        q->front=q->rear=NULL;
    else                    //队列中有多个节点时
        q->front=q->front->next;
    e=t->data;
    free(t);
    return true;
}

主函数:


/*

    Copyright (c) 2015,烟台大学计算机与控制工程学院
    All righs reserved
    文件名称:litack.h
    作者: 李哲
    完成日期:2015年10月14日

    问题描述:建设链式队列算法库
    程序说明:主函数


*/

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

int main()
{
    ElemType e;
    LiQueue *q;
    printf("(1)初始化链队q\n");
    InitQueue(q);
    printf("(2)依次进链队元素a,b,c\n");
    enQueue(q,'a');
    enQueue(q,'b');
    enQueue(q,'c');
    printf("(3)链队为%s\n",(QueueEmpty(q)?"空":"非空"));
    if (deQueue(q,e)==0)
        printf("队空,不能出队\n");
    else
        printf("(4)出队一个元素%c\n",e);
    printf("(5)链队q的元素个数:%d\n",QueueLength(q));
    printf("(6)依次进链队元素d,e,f\n");
    enQueue(q,'d');
    enQueue(q,'e');
    enQueue(q,'f');
    printf("(7)链队q的元素个数:%d\n",QueueLength(q));
    printf("(8)出链队序列:");
    while (!QueueEmpty(q))
    {
        deQueue(q,e);
        printf("%c ",e);
    }
    printf("\n");
    printf("(9)释放链队\n");
    DestroyQueue(q);
    return 0;
}


运行结果:


  至此链式队列算法库建设完成,如有不足,敬请指正。

JavaFX 概述 要从 JavaFX 中充分受益,了解 JavaFX 的设计方式以及对 JavaFX 包含的功能有一个很好的概述是很有用的。本文的目的是为您提供 JavaFX 概述。本文将首先介绍一般的 JavaFX 设计,然后介绍 JavaFX 中的各种特性。如果您熟悉 Flash/Flex,您会发现 JavaFX 在某种程度上受到了 Flash/Flex 的启发。JavaFX 中也有一些相同的想法。一般来说,JavaFX 应用程序包含一个或多个对应于窗口的阶段。每个阶段都有一个场景。 阅读详情

相关推荐

在innovus中通过ecoAddRepeater插入buffer/inverter

在innovus中,我们可以通过ecoAddRepeater命令来在net上添加单个buffer或者成对的inverters。ecoAddRepeater命令的行为由命令setEcoMode控制。 选项说明 -cell <list of cells> 指定插入的buffer或者inverter的类型。 -net <netName> | -term <inst1/term1 inst2/term2 ...> -net指定需要插入buffer/inverters的

kevindas的博客 1万+

request for member "..." in "..." which is of non-class type "..."

D:\debug\qt\6\main.cpp:15: error: request for member 'exec' in 'a', which is of non-class type 'QCoreApplication(int, char)'      return a.exec();               删掉参数类型

Hello Nerd! 2万+

CASS3D实战:高效三维房屋与地形采集绘制技巧

本文详细介绍了CASS3D在三维房屋与地形采集绘制中的高效技巧,包括智能绘房功能、不规则结构处理、特殊构件快速绘制及地形数据采集策略。通过实战案例和进阶操作指南,帮助用户快速掌握CASS3D的核心功能,提升三维采集与绘制效率。

weixin_29216049的博客 867

第七周数据结构之自建算法库——顺序环形队列【项目2 - 建立链队算法库】

/* 1 *Copyright(c)2015,烟台大学计算机学院 2. *All rights reserved 3. *文件名称:第七周数据结构之自建算法库——顺序环形队列【项目2 - 建立链队算法库】 4. *作者:杜亭亭 5. *完成日期:2015,10,27 6. *版号:v1.0 7. 8. * 9. *问题描述:     定义链队存储结构,实现其基本运算,并完成测试。

qingtingdianshui1的博客 459

ADS仿真设计平行定向耦合器学习笔记

ADS仿真设计平行定向耦合器

qq_36521926的博客 1万+

YOLOv11与3D点云检测融合技术深度解析:从2D检测到三维空间投影的完整实现

2D-3D融合目标检测技术研究 本文系统阐述了基于YOLOv11的2D-3D目标检测融合技术,重点分析了YOLOv11在融合系统中的定位优势及其架构设计。研究表明,2D图像与3D点云数据具有显著的互补特性:2D图像提供丰富语义信息,而3D点云则精确描述几何结构。 关键技术要点: YOLOv11通过GSConv平衡卷积和VoVGSCS特征融合模块,在保持实时性的同时提升了检测精度 系统采用模块化设计,包含坐标投影、点云分割、边界框拟合等核心组件 针对点云数据的非均匀分布特性,提出了多尺度特征增强和距离差异化检

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1127

数据结构上机实践第七周项目2 - 自建算法库——链队(链式队列)

自建算法库——链队(链式队列) 实现源代码如下: 1.liqueue.h [cpp] view plain copy         要求:         1、头文件liqueue.h中定义数据结构并声明用于完成基本运算的函数。对应基本运算的函数包括:         void InitQueue(LiQueue *&q);

hou8389846的博客 660

概率质量函数(PMF)、概率密度函数(PDF)、累积分布函数(CDF)

1.概率分布函数(Probability Distribution Functions) 笔记来源:Probability Distribution Functions (PMF, PDF, CDF) 1.1 离散型:PMF和CDF 1.2 连续型:PDF和CDF 累积分布函数的导数 === 概率密度函数的函数值 dF(x)dx=f(x) \frac{dF(x)}{dx}=f(x) dxdF(x)​=f(x) 概率密度函数与 xxx 轴围成的面积 === 累积分布函数的函数值 ∫−∞xf(x)d

一个搬运知识的笨小孩 3万+

第七周项目2-建立链式队列算法库

/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:liandui.cbp 作 者:李涵睿 完成日期:2015年10月23日 版 本 号:v1.0 问题描述:定义链队列存储结构,实现其基本运算,并完成测试。 输入描述:无 程序输出:测试数据 */ 头文件:sqqueue.h,算

mockingbommie的博客 592

验证方法、符合性方法与设计保证的关系

未来,随着适航标准和工程实践的不断演进,验证与符合性方法将持续优化,以应对日益复杂的系统设计需求。设计保证过程中的验证活动具有双重作用,既用于设计过程的质量控制和风险管理,又作为适航符合性方法的重要支持材料。在未来的航空电子系统开发中,进一步优化设计保证与验证活动的协同作用,将有助于应对日益复杂的工程挑战,推动航空安全技术的发展。为了全面理解这二者之间的关系,本章将系统说明设计保证过程中的验证活动如何既服务于设计保证,又作为符合性方法中的核心证明材料。最终,通过功能测试和环境测试验证硬件的实际性能。

qq_41854911的博客 554

线结构光相机原理详解以及精度控制总结

摘要:线阵结构光相机是工业三维检测的核心设备,结合线阵相机的高分辨率与结构光的主动三维成像能力。其工作原理基于线激光投射、逐线扫描、亚像素级条纹提取及三角测量法实现三维重建。精度受硬件、校准、环境和算法四因素影响,需通过优化硬件选型(如小像元相机、窄线宽激光)、精准校准(相机内参、激光平面)、环境控制(遮光、隔振、恒温)及算法优化(Steger算法、点云后处理)来提升。典型应用(卷材、轨道检测)中深度精度可达5-20μm,需根据场景需求平衡参数配置。

start_up_go的博客 940

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

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

yxxhilda的博客 487

2023华为od机试C卷【最富裕的小家庭】Python 实现

在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。

MISAYAONE的博客 2043

第七周项目二C/C++数据结构之自建算法库——链队(链式队列)

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:单链表应用逆置、连接与递增判断 *作 者:高晶 *完成日期:2017年11月07日 *版 本 号:v1.0 * 数据结构之自建算法库——链队(链式队列)*/ 链队算法库采用程序的多文件组织形式,包括两个文件:  1.头

JING727708672的博客 360

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

第七周 项目二 建立链队列算法库

/*  Copyright (c)2016,烟台大学计算机与控制工程学院  All rights reserved.  文件名称:bigice.cbp  作    者:李良涵  完成日期:2016年10月21日  版 本 号:v1.0      问题描述:定义链队列存储算法库,实现其基本运算,并完成测试。  输入描述:无  程序输出:测试数据  */   代码: mai

qq_33412901的博客 266

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

第七周项目四C/C++数据结构实践——队列数组

/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:单链表应用逆置、连接与递增判断 *作 者:高晶 *完成日期:2017年11月09日 *版 本 号:v1.0 * 数据结构实践——队列数组 /* 【项目 - 队列数组】   创建10个队列,分别编号为0-9(处理为

JING727708672的博客 539

efm32 入门.pdf

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

第七周实践项目2--建立链队算法库

问题及代码: /* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第7周项目2--建立链队算法库.cpp 作 者:朱振华 完成日期:2015年10月19日 版 本 号:v1.0 问题描述:定义链队存储结构,

TonyABu的博客 805

第七周项目4-队列数组

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

mockingbommie的博客 504

第七周 数据结构实践项目——队列 【项目4 - 队列数组】

/* 1. *Copyright(c)2015,烟台大学计算机学院 2. *All rights reserved 3. *文件名称:第七周 数据结构实践项目——队列 【项目4 - 队列数组】 4. *作者:杜亭亭 5. *完成日期:2015,11,02 6. *版号:v1.0 7. 8. * 9. *问题描述:创建10个队列,分别编号为0-9(处理为队列数组,

qingtingdianshui1的博客 488

第七周--数据结构--建立链队算法库

/*   第七周--数据结构--建立链队算法库   *Copyright (c) 2015 烟台大学计算机与控制工程学院   *All right reserved.   *文件名称:sqqueue.cpp   *writer:罗海员   *date:2015年10月26日   *版本:V1.0.1   *操作系统:XP   *运行环境:VC6.0   *问题描述:定义链式队列

Sailor_luo的博客 590

第七周项目四—队列数组

/*      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. *文件名称:多文件组织 *作 者:张昕 *完成日期:2017年12月17日 *版 本 号:v1.0 */ 创建10个队列,分别编号为0-9(处理为

zx735211469的博客 290

第七周||数据结构之自建算法库——链队(链式队列)

/* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:ouyangdingtian.cpp *作 者:王百琛 *完成日期:2017年10月12日 *版 本 号:v1.0 * *问题描述:链队的建立 *输入描述:无 *程序输出:测试结果 */ #includ

wbc8256765的博客 301

第七周 项目四 队列数组

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

sdlixiao6的博客 301

数据结构第七周项目4--队列数组

/*  *Copyright(c)2017,烟台大学计算机与控制工程学院  *All rights reserved.  *作    者:刘浩 *版 本 号:v1.0  问题描述:创建10个队列,分别编号为0-9(处理为队列数组,编号即下标)。            输入若干个正整数,以数字0作为结束。            设输入的值为x,其个位数字的大小为i,则将x插入到编号为i

shayue8610的博客 221

第七周项目二:建立链队算法库

/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目2.cbp 作 者:孙立立 完成日期:2015年11月30日 版 本 号:v1.0 问题描述:定义链队列存储结构,实现其基本运算,并完成测试。 输入描述:无 程序输出:测试数据 */ liqueue.h头文件代码: #ifndef SQ

Slingchen的博客 440
上一篇: *第七周*数据结构实践项目一【建设环形队列算法库】
下一篇: *第七周*数据结构实践项目三【负数把整数赶出队列】
GiottoLee
博客等级 码龄11年 119粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值