带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点, 试编写相应的队列初始化,入队列和出队列的算法

2023-11-14

数据结构算法题(假设以带头结点的循环链表表示队列,
并且只设一个指针指向队尾元素结点(注意不设头指针)
试编写相应的队列初始化,入队列和出队列的算法!)

/*  数据结构算法题(假设以带头结点的循环链表表示队列,
 *  并且只设一个指针指向队尾元素结点(注意不设头指针)
 *  试编写相应的队列初始化,入队列和出队列的算法!) 
 */

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define OK 1
#define ERROR 0

typedef int QElemType;
typedef int Status;

typedef struct QNode
{
    QElemType data;
    struct QNode * rear;
    struct QNode * next;
}QNode,*LinkQueue;


//链式队列的初始化
Status InitLinkQueue(LinkQueue * L)
{

    (*L)=(LinkQueue)malloc(sizeof(QNode));
    if((*L)==NULL)
    {
        printf("内存分配失败!\n");
        return OK;
    }
    (*L)->rear=(*L);
    return OK;
}

//链式队列的建立
Status Create(LinkQueue * L,int n)
{
    srand(time(0));
    LinkQueue P;
    for(int i=0;i<n;i++)
    {
        P=(LinkQueue)malloc(sizeof(QNode));
        P->data=rand()%100+1;
        (*L)->rear->next=P;
        (*L)->rear=P;
    }
    P->next=(*L);
    return OK;
}

//入队操作
Status EnQueue(LinkQueue * L,QElemType e)
{
    LinkQueue P;
    P=(LinkQueue)malloc(sizeof(QNode));
    P->data=e;
    P->next=(*L);
    (*L)->rear->next=P;
    (*L)->rear=P;
    return OK;
}


//出队操作
Status DeQueue(LinkQueue * L,QElemType * e)
{
    LinkQueue temp;
    *e=(*L)->next->data;
    temp=(*L)->next;
    (*L)->next=(*L)->next->next;
    delete(temp);
    return OK;

}

//输出
void Print(LinkQueue * L)
{
    LinkQueue P;
    P=(*L)->next;
    printf("输出元素:\n");
    while(P!=(*L))
    {
        printf("%d ",P->data);
        P=P->next;
    }
    printf("\n");
}


int main()
{
    LinkQueue L;
    int ElemNumber;
    QElemType EnElem,DeElem;
    InitLinkQueue(&L);
    printf("请输入元素个数:\n");
    scanf("%d",&ElemNumber);
    Create(&L,ElemNumber);
    Print(&L);
    printf("请输入入队元素:\n");
    scanf("%d",&EnElem);
    EnQueue(&L,EnElem);
    Print(&L);
    printf("出队操作,并返回出队元素:\n");
    DeQueue(&L,&DeElem);
    printf("出队元素为:%d\n",DeElem);
    Print(&L);
    return 0;
}

运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点, 试编写相应的队列初始化,入队列和出队列的算法 的相关文章

  • Python10行代码实现模拟百度搜索

    作者主页 士别三日wyx Python模拟百度搜索 1 获取百度搜索接口 2 指定搜索内容 3 UA伪装 4 将响应内容写入文件 5 使用浏览器打开页面 源码如下 1000块钱做个百度 能提出这种要求的客户实乃乙方克星 民族之光 科创永动机
  • 30个落地案例告诉你,区块链到底怎么用

    区块链的商业价值 一千个企业就有一千种解读 唯链 VeChain 起步于2015年 作为国内知名的公链项目之一 它的行事作风一直显得不太 合群 大多数公链生态所追随的热点如DAPP游戏开发 Defi Staking等等 唯链似乎都鲜少参与
  • [STL]vector常见用法详解

    目录 引入 常见用法介绍 1 vector的定义 2 vector容器内元素的访问 3 vector常用函数实例解析 1 push back 2 pop back 3 size 4 clear 5 insert 6 erase vector

随机推荐

  • 如果有一天程序员再也不忙了

    前言 程序员是世界上最可爱的人 正文 一 程序员是什么 二 程序员写的代码有什么用 三 程序员最本质的不同是什么 四 程序员为什么找不到妹子 五 程序员的工作究竟有多忙 六 有一天程序员不忙了会怎样 七 找不到妹子真的是因为工作忙吗 八 你
  • .NET Core 获取自定义配置文件信息

    官方文档说 引用 Microsoft AspNetCore App 元包或将包引用添加到 Microsoft Extensions Options ConfigurationExtensions 包 简而言之 直接可以获取 不用引用包了 a
  • 盖茨来了:比起去火星,地球有些事更紧迫

    2023年6月14日晚 比尔 盖茨在微博更新了一条消息 他写道 我刚降落在北京 这是我2019年以来的首次访问 盖茨基金会与中国伙伴合作应对全球健康和发展挑战已经超过15年 我非常高兴能与中国的伙伴们见面 在减少儿童死亡和贫困方面 世界取得
  • CSS层叠样式表-选择器

    1 CSS 1 特点 相同属性会覆盖 不同属性会叠加 2 引入方式 外部样式 在head标签中使用link标签引入css文件 内嵌样式 在head标签中使用style标签进行书写 行内样式 在对应标签中添加style属性 1 外部样式 W3
  • 二叉查找树实现

    package leetcode May import java util ArrayList import java util List description 二叉查找树 author qiangyuecheng date 2022 5
  • 小程序单独页面生成二维码

    给单独的小程序页面生成一个二维码 比如某个商品 1 登录小程序绑定的公众号后台 2 选择 工具 生成小程序码 输入小程序AppID 复制页面路径 截图保存完成
  • 天才中的天才—冯·诺依曼简介

    https www toutiao com i6707878069182398988 参考 数学扫地僧 冯 诺依曼 John von Neumann 1903 1957 美国数学家 原籍匈牙利 毫无疑问 冯 诺依曼是20世纪最重要的数学家之
  • 关于 Unknown column ‘xxx‘ in ‘field list‘ 的问题解决

    Unknown column xxx in field list 在开发中出现了此类报错 Error querying database Cause java sql SQLSyntaxErrorException Unknown colu
  • 怎样配置炒股用的计算机,炒股专用电脑配置

    炒股专用电脑配置 一 显卡 1 欲购六屏且囊中羞涩的股民朋友 显卡可以选择AMD的六屏显卡 为避广告嫌疑 此处便不列举具体型号了 而预算稍充足一些的便推荐更加稳定的英伟达图形工作站系列显卡 如Nvidia Quadro P620 2 对于四
  • 计算机专业 拒绝清华,2次拒绝北大邀请,获清华保送生资格,网友:清华计算机全球第一...

    原标题 2次拒绝北大邀请 获清华保送生资格 网友 清华计算机全球第一 能够获得北京大学的盛情邀请 应该是一种极大的光荣吧 更何况连高考都不用参加 可以直接入学 不过 这位高三生 却2次拒绝了北大数学系的邀请 理由是 他更喜欢计算机 最终 这
  • 隐马尔可夫模型(HMM)的分类

    1 遍历型 ergodic model 即每个状态都可以由任意一个状态演变而来 aij gt 0 for all i j 如图 2 left right type of HMM 每个状态只能由下标值小于当前值得状态以及其本身转移而来 即从左
  • 如何解决x盘莫名出现的msdia80.dll文件

    如何解决x盘莫名出现的msdia80 dll文件 参考文章 https zhuanlan zhihu com p 138954717
  • 在latex中如何编写方程组,并且带文字或者范围分段,以及如何使用空格使其对齐

    在latex中如何编写方程组 并且带文字或者范围分段 以及如何使用空格使其对齐 begin equation O ij t begin cases x it x oi t y it y oi t quad text Obstacles ex
  • 【卷积神经网络】卷积层,池化层,全连接层

    转于 入门PyTorch 卷积层是卷积神经网络的核心 大多数计算都是在卷积层中进行的 1 卷积层 1 1 概述 首先介绍卷积神经网络的参数 这些参数是由一些可学习的滤波器集合构成的 每个滤波器在空间上 宽度和高度 都比较小 但是深度和输入数
  • UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xff in position 0: invalid start byte

    遇到python转码问题解决方案 利用notepad进行转码 如图 转为 utf 8保存重新运行 完美解决 ps 又遇到了一个分隔符错误 只需要添加以下就可以 df pd read csv D workspace python demo 长
  • Blender基础:曲线建模基础

    1 曲线建模 曲线Curve 也称为样条 用于描绘平滑的曲线和形状 一般分为两种 贝塞尔曲线 Nurbs曲线 添加一条曲线 添加 gt 曲线 gt 贝塞尔曲线 按7 进入顶视图 按TAB 编辑曲线 选择移动工具 移动控制点或控制柄 按TAB
  • 趣事

    一 谁发明了微积分 1 一篇文献引起的巨人相搏 如果要在科学史上找出一次最重要的巨人相争 牛顿与莱布尼茨围绕微积分发明权的争论无疑是当仁不让之选 1684 年 10 月 莱比锡大学学术刊物 学术论文集 刊载了一篇名字烦琐冗长的论文 一种求极
  • Python Pandas 行数据筛选方法汇总

    Pandas 行数据筛选 一 准备数据 二 通过逻辑规则筛选 大于 小于等 三 删除重复元素 三 显示最前面 最后面的 n 行 3 1 显示前面 n 行 3 2 显示后面 n 行 四 随机抽取 4 1 随机抽取一定比例 4 2 随机抽取 n
  • 没学C++,如何从C语言丝滑过度到python【python基础万字详解】

    大家好 我是纪宁 文章将从C语言出发 深入介绍python的基础知识 也包括很多python的新增知识点详解 文章目录 1 python的输入输出 重新认识 hello world 重回那个激情燃烧的岁月 1 1 输出函数print的规则
  • 带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点, 试编写相应的队列初始化,入队列和出队列的算法

    数据结构算法题 假设以带头结点的循环链表表示队列 并且只设一个指针指向队尾元素结点 注意不设头指针 试编写相应的队列初始化 入队列和出队列的算法 数据结构算法题 假设以带头结点的循环链表表示队列 并且只设一个指针指向队尾元素结点 注意不设头