2-25练习题

6.假设循环队列用数组实现,其定义如下:
#define SEQLEN 32
int seqn [ SEQLEN ];
/*用于存放队列数据的数组*/
int head;/*数组下标索引,指向队列头部,若队列不空,指向队列头元素*/
int tail;/*数组下标索引,指向队列尾部,若队列不空,指向队列空元素*/
队列示例:
循环队列中保存了1、2,3三个数据的状态。
seqn
head=1
tail=4
(1)假如队列未满,现有变量 data 需要入队,请写出表达式;
    seqn[tail] = data;
    tail = (tail + 1) % SEQLEN;

(2)假如队列未空,现在需要从队列取一个元素并赋值给变量data,请写出表达式;
    data = seqn[head];
    head = (head + 1) % SEQLEN;

(3)请写出队列为空的判断条件:
    head == tail

(4)请写出队列满的判断条件:
    (head + 1) % SEQLEN == tail

(5)请写出清空队列的表达式:
    head = 0;
    tail = 0;

(6)请写出计算队列中元素个数的表达式:
    (head <= tail) ? (tail - head) : (SEQLEN - head + tail)

(7)队列最多可以存放几个元素:
    循环队列最多可以存放的元素个数为 SEQLEN - 1,因为需要浪费一个位置来区分队列为空和队列为满的状态。
所以最多可以存放31个元素。


6, 补下面队列代码  
struct list_head {  
    struct list_head *next, *prev;  
};  
/**  
* used to add new element into list.  
* @new: specify the new element.  
* @prev: specify the previous element.  
* @next: specify the next element.  
* 插入 到 prev 和 next 中间  
*/  
static inline void _list_add(struct list_head * new,  
struct list_head * prev,  
struct list_head *next)  
}  
    
    new=(struct list_head*)malloc(sizeof(struct list_head));
    if(NULL = new)
    {
        printf("创建新节点失败\n");
        return;
    }
    new->next = NULL;
    new->prev = NULL;
    new->prev=new->prev->next;
    new->prev->next = new;
    
    
/**  
* used to maintain link status when delete an element.  
*@prev: specify the previous element.  
*@next: specify the next element.  
* 删除 prev 和 next 中间那个
*/  
static inline void __list_del(struct list_head *prev, struct list_head *next)  
{  
    struct list_head* p;
    p=prev->next;
    prev->next = prev->next->next;
    free(p);
    p=NULL;
    
}  
/**  
* used to add element into the tall of list.  
* @new: specify the new element.  
* @head: specify the head element.  
* 插入到队尾  
* /
static inline void list_add_tail(struct list_head *new, struct list_head *head)  
{
    
    new=(struct list_head*)malloc(sizeof(struct list_head));
    if(NULL = new)
    {
        printf("申请新节点失败\n");
        return;
    }
    p=head;
    while(p->next!=NULL)
    {
        p=p->next;
    }
    p->next = new->next;
    p->next = new;
    new->prev = p;
    new->next=NULL;

}  
/**  
* used to remove element.  
* @entry: specify the element which want to be deleted.  
* 删掉  
*/  
static inline void list_del(struct list_head *entry)  
{  
    struct list_head* p;
    if(entry->next!=NULL)
    {
        entry->prev->next = entry->next;
        entry->next->prev = entry->prev;
        free(entry);
        entry=NULL;
    }
    else
    {
        entry->prev->next = NULL;
        free(entry);
        entry=NULL;
    }
}  
/**  
* used to check list is empty or not.  
* @head: specify the head element.  
* 判断是否为空  
*/  
static inline int list_empty(const struct list_head *head)  
{  
    return head->next == head->prev;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STL常用容器(string容器)---C++

STL常用容器目录 1.string容器1.1 string基本概念1.2 string构造函数1.3 string赋值操作1.4 string字符串拼接1.5 string查找和替换1.6 string字符串比较1.7 string字符存取1.8 string插入和删除1.9 string子串 1.string容器 1.1 string基本概念 本质&#xff1a; string是C…

电子签证小程序系统源码后台功能列表

基于ThinkPhp8.0uniapp 开发的电子签证小程序管理系统。能够真正帮助企业基于微信公众号H5、小程序、wap、pc、APP等&#xff0c;实现会员管理、数据分析,精准营销的电子商务管理系统。可满足企业新零售、批发、分销、预约、O2O、多店等各种业务需求&#xff0c;快速积累客户、…

搜索专项---IDA*

文章目录 排书回转游戏 一、排书OJ链接 本题思路:先考虑每一步的决策数量&#xff1a;当抽取长度为 i 的一段时&#xff0c;有 n−i1 种抽法&#xff0c;对于每种抽法&#xff0c;有 n−i 种放法。另外&#xff0c;将某一段向前移动&#xff0c;等价于将跳过的那段向后移动&am…

C++之std::tuple(二) : 揭秘底层实现原理

相关系列文章 C之std::tuple(二) : 揭秘底层实现原理 C三剑客之std::any(一) : 使用 C之std::tuple(一) : 使用精讲(全) C三剑客之std::variant(一) : 使用 C三剑客之std::variant(二)&#xff1a;深入剖析 深入理解可变参数(va_list、std::initializer_list和可变参数模版) st…

【JVM】线上一次fullGC排查思路

fullGC问题背景 监控告警发现&#xff0c;今天开始我们线上应用频繁出现fullGC&#xff0c;并且每次出现后磁盘都会被占满 查看监控 查看监控发现FULLGC的机器均为同一个机房的集器&#xff0c;并且该机房有线上error报错&#xff0c;数据库监控对应的时间点也有异常&#x…

数据结构知识点总结-绪论 数据结构基本术语 算法及评价

要求 &#xff08;1&#xff09;对数据结构这么课学了哪些知识有个清楚的认知&#xff1b; &#xff08;2&#xff09;掌握目录结构&#xff0c;能复述出来每个知识点下都有哪些内容。 如下图所示&#xff0c;可自行制作思维导图&#xff0c;针对自己薄弱的地方进行复习。 …

curl与HTTP状态码

目录 一、curl &#xff08;一&#xff09;curl简介 &#xff08;二&#xff09;curl命令的选项 二、HTTP状态码 &#xff08;一&#xff09;状态码的含义 &#xff08;二&#xff09;状态码分类 1.默认的状态码 2.自定义状态码 一、curl &#xff08;一&#xff09;c…

NGINX服务器配置实现加密的WebSocket连接WSS协议

一、背景 最近在做小程序开发&#xff0c;需要在nginx中配置websocket加密模式&#xff0c;即wss。初次配置wss时&#xff0c;踩了两个小时的坑&#xff0c;本文将踩坑过程分享给大家&#xff0c;有需要用到的伙伴可以直接copy即可实现&#xff0c;节省宝贵时间。 二、WebSo…

代码随想录第41天|● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

文章目录 背包问题背包题目解法一 ● 01背包问题-二维数组五部曲1.确定dp数组2、确定递推公式3、初始化dp数组4、循环代码&#xff1a; 解法二-01背包问题-滚动数组五部曲1&#xff1a;定义dp二、递推公式三、初始化四、循环顺序代码&#xff1a; 698. 划分为k个相等的子集题解…

【AI学习指南】一、人工智能方向学习路线

目录 人工智能是什么 我们可以利用人工智能做什么 人工智能学习路线 总结与展望

FairyGUI × Cocos Creator 3.x 使用方式

前言 上一篇文章 FariyGUI Cocos Creator 入门 简单介绍了FairyGUI&#xff0c;并且按照官方demo成功在Cocos Creator2.4.0上运行起来了。 当我今天使用Creator 3.x 再引入2.x的Lib时&#xff0c;发现出现了报错。 这篇文章将介绍如何在Creator 3.x上使用fgui。 引入 首先&…

uniapp开发安卓app华为平板真机预览

首先使用数据线连接平板和电脑设备 一、前期准备 平板需要开启三个地方&#xff1a; 1、打开设置&#xff0c;在搜索框中输入版本号/或者直接点击最下方的【关于平板电脑】&#xff0c;点击版本号进入关于平板的界面&#xff0c;连续点击版本号7次&#xff0c;直到出现提醒“…

2.25基础会计学

资本公积是指由股东投入、但不能构成“股本”或“实收资本”的资金部分。 盈余公积是指公司按照规定从净利润中提取的各种积累资金。 所以区别在于盈余公积来自净利润。 借贷其实就是钱从哪来和到哪去的问题&#xff0c;来源是贷&#xff0c;流向是借。比如购入9w原材料&…

基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法. 2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序 ........................…

facebook群控如何做?使用静态住宅ip代理有什么好处?

在进行Facebook群控时&#xff0c;ip地址的管理是非常重要的&#xff0c;因为Facebook通常会检测ip地址的使用情况&#xff0c;如果发现有异常的使用行为&#xff0c;比如从同一个ip地址频繁进行登录、发布内容或者在短时间内进行大量的活动等等&#xff0c;就会视为垃圾邮件或…

RK3568平台开发系列讲解(Linux系统篇)字符设备驱动:分配和注册字符设备

🚀返回专栏总目录 文章目录 一、分配和注册字符设备二、file_operations沉淀、分享、成长,让自己和他人都能有所收获!😄 一、分配和注册字符设备 字符设备在内核中表示为struct cdev的实例。在编写字符设备驱动程序时,目标是最终创建并注册与struct file_operations关联…

Golang 中的字符串:常见错误和最佳实践

在这篇文章中&#xff0c;我们将讨论 Golang 中的字符串&#xff0c;并查看一些不同的场景&#xff0c;以避免常见错误。让我们深入探讨&#xff01; 1. 字符串是否可以为 nil&#xff1f; 我们已经对 Golang 中的字符串有了基本的了解&#xff0c;但我们可以从 Golang 字符串…

栈和队列笔试题

答案&#xff1a;&#xff08;1&#xff09;seqn[tail]data; tail(tail1)%SEQLEN; &#xff08;2&#xff09;data seqn[head]; head (head1)%SEQLEN; &#xff08;3&#xff09;head tail; &#xff08;4&#xff09;(tail1)%SEQLEN head; (5) while(head!tail) head (h…

JVM内存结构介绍

1.程序计数器&#xff08;Program Counter Register&#xff09; 程序计数器是一块较小的内存空间&#xff0c;它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里&#xff08;仅是概念模型&#xff0c;各种虚拟机可能会通过一些更高效的方式去实现&…

电商评价分析:NLP信息抽取技术在用户评论中的应用与挖掘

一、引言 在2019年&#xff0c;电子商务的蓬勃发展不仅推动了消费市场的增长&#xff0c;也带来了海量的用户评价数据。这些数据&#xff0c;作为消费者对商品和服务直接反馈的载体&#xff0c;蕴含着巨大的价值。然而&#xff0c;由于其非结构化的特性&#xff0c;这些文本信息…