精华内容
下载资源
问答
  • 初始队列

    2015-05-13 22:32:44
    和上一节介绍的栈相反,队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端进行删除。javascript自己提供了两个队列方法shift和unshift方法,分别是入队和出队,其原理就是将元素插入数组最后一个...

             和上一节介绍的栈相反,队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端进行删除。javascript自己提供了两个队列方法shift和push方法,分别是出队和入队,其原理就是将元素插入数组最后一个和删除第一个元素。

             这里需要注意一点,就是unshift方法的效率比push的效率要低很多。因为它要将入队之前的数组全部往前移动一位。这里我们就不用代码再次演示了。

             和线性表类似,队列也分为顺序队列和链队列。

             和顺序栈类似,在队列的顺序存储结构中,除了使用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,还要设置两个指针front和rear分别指向队列头元素和队列尾元素。初始化时,front=rear=0;插入元素时,rear+1;删除元素时,front+1。所以在非空队列中,头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置。

    展开全文
  • 游戏规则是这样的:将一副扑克牌平均分成两份,每人拿一份。甲拿出一张牌放在桌上,乙接着拿一张放在...假设牌面只有1~9,初始每个人有6张牌,是否存在这一对初始序列使的这个游戏可以一直进行下去,如果存在,是多少?
  • <html> <head lang="en"> <meta charset="UTF-8"> <title></title> &... border: solid 2px re
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style>
            td{
                width: 20px;
                border: solid 2px red;
                padding: 10px;
            }
        </style>
    </head>
    <body>
    <input type="number" id="in">
    <button id="bt1" οnclick="click1()">左侧入</button>
    <button id="bt2" οnclick="click2()">右侧入</button>
    <button id="bt3" οnclick="click3()">左侧出</button>
    <button id="bt4" οnclick="click4()">右侧出</button>
    <table>
        <tr id="only">
            <script>
                function click1(){
                    var val=document.getElementById("in").value
                    if(document.getElementsByTagName("td").length==0){
                        document.getElementById("only").appendChild(document.createElement("td"))
                        document.getElementsByTagName("td")[0].innerHTML=val
                    }else {
                        document.getElementById("only").appendChild(document.createElement("td"))
                        var tds=document.getElementsByTagName("td")
                        for(var i=tds.length-2;i>=0;i--){
                            tds[i+1].innerHTML=tds[i].innerText
                        }
                        tds[0].innerHTML=val
                    }
                }
                function click2(){
                    document.getElementById("only").appendChild(document.createElement("td"))
                    var val=document.getElementById("in").value
                    var tds=document.getElementsByTagName("td")
                    tds[tds.length-1].innerHTML=val
                }
                function click3(){
                    var tds=document.getElementsByTagName("td")
                    tds[0].remove()
                }
                function click4(){
                    var tds=document.getElementsByTagName("td")
                    tds[tds.length-1].remove()
                }
            </script>
        </tr>
    </table>
    </body>
    </html>
    展开全文
  • 队列题目:初始队列+入队列+出队列+销毁队列
  • C语言_初始队列+入队列+出队列+销毁队列
  • 队列初始化 判断队列是否为空 入队列队列 等等操作先上个示意图(图片来源 严蔚敏版数据结构) 可能更好理解 1 // 2 // main.cpp 3 // WWLinkQueueBasic 4 // 5 // Created by Live on 2017/8/22. 6 ...

    链队列的初始化 判断队列是否为空 入队列 出队列 等等操作先上个示意图(图片来源 严蔚敏版数据结构) 可能更好理解
    1
    // 2 // main.cpp 3 // WWLinkQueueBasic 4 // 5 // Created by Live on 2017/8/22. 6 // Copyright © 2017年 ITCoderW. All rights reserved. 7 // 8 //参考书籍:严蔚敏版数据结构 数据结构高分阅读等 9 10 #include <iostream> 11 using namespace std; 12 13 #define maxSize 1000 14 #define WWStr(str) #str 15 #define WWLine "-------------" 16 17 18 /** 19 链队列结点结构体 20 */ 21 typedef struct LinkQueueNode{ 22 int data; //数据域 23 struct LinkQueueNode *next; //指针域 24 }LinkQueueNode; 25 26 27 /** 28 链队列类型定义(只有一个头尾指针而已) 29 */ 30 typedef struct{ 31 LinkQueueNode *front; //链队列头指针 32 LinkQueueNode *rear; //链队列尾指针 33 }LinkQueue; 34 35 36 /** 37 链队列相关操作 38 */ 39 void linkQueueOperation(); 40 /** 41 初始化链队列 42 43 @param linkQueue 链队列linkQueue 44 */ 45 void initLinkQueue(LinkQueue *&linkQueue); 46 47 /** 48 判断链队列是否为空 49 50 @param linkQueue 链队列 51 */ 52 53 /** 54 判断链队列是否为空 55 56 @param linkQueue 链队列 57 @return 为空返回1 不为空返回0 58 */ 59 int isEmptyLinkQueue(LinkQueue *linkQueue); 60 61 /** 62 入队列 63 64 @param linkQueue 链队列 65 @param x 要入队列的元素 66 */ 67 void enLinkQueue(LinkQueue *linkQueue,int x); 68 #pragma mark - 出队列 69 70 /** 71 链队列出队列 72 73 @param linkQu 要出队列的链队列 74 @param x 返回出队列的数据域的值 75 @return 返回能否出队列 76 */ 77 int outLinkQueue(LinkQueue *linkQu,int &x); 78 79 int main(int argc, const char * argv[]) { 80 linkQueueOperation(); 81 return 0; 82 } 83 84 85 #pragma mark - 链队列相关操作 86 void linkQueueOperation(){ 87 88 LinkQueue *linkQueue; 89 initLinkQueue(linkQueue); 90 isEmptyLinkQueue(linkQueue); 91 //1 2 3 依次入队列 92 enLinkQueue(linkQueue, 1); 93 enLinkQueue(linkQueue, 2); 94 enLinkQueue(linkQueue, 3); 95 // 96 int currentFrontData; 97 outLinkQueue(linkQueue, currentFrontData); 98 outLinkQueue(linkQueue, currentFrontData); 99 outLinkQueue(linkQueue, currentFrontData); 100 101 outLinkQueue(linkQueue, currentFrontData); 102 103 enLinkQueue(linkQueue, 4); 104 outLinkQueue(linkQueue, currentFrontData); 105 106 107 } 108 109 #pragma mark - 初始化链队列 110 void initLinkQueue(LinkQueue *&linkQueue){ 111 112 cout<<WWLine<<WWStr(链队列初始化操作地址)<<&linkQueue<<WWLine<<endl; 113 //之前一直是笔误导致了下边的这种情况的发生 还找了半天错 所以以后的话最好要注意别把参数名和类型的名字写得太像 114 // linkQueue = (linkQueue *)malloc(sizeof(linkQueue)); 115 linkQueue = (LinkQueue *)malloc(sizeof(LinkQueue)); 116 linkQueue->front = NULL; 117 linkQueue->rear = linkQueue->front; 118 119 } 120 121 #pragma mark - 判断队列是否为空 122 int isEmptyLinkQueue(LinkQueue *linkQueue){ 123 cout<<WWLine<<WWStr(判断链队列是否为空 队列地址)<<&linkQueue<<WWLine<<endl; 124 if (linkQueue->front == NULL || linkQueue->rear == NULL) { 125 return 1; 126 } 127 return 0; 128 } 129 130 #pragma mark - 入队列 131 void enLinkQueue(LinkQueue *linkQueue,int x){ 132 cout<<WWLine<<WWStr(进入链队列地址)<<linkQueue<<WWLine<<endl; 133 134 cout<<WWStr(当前入队列的元素)<<x<<endl; 135 LinkQueueNode *Node = (LinkQueueNode*)malloc(sizeof(LinkQueueNode)); 136 Node->data = x; 137 Node->next = NULL; 138 139 if(isEmptyLinkQueue(linkQueue)){ 140 //如果入的是空队列 则新结点是队首结点也是队列尾结点 141 linkQueue->front = Node; 142 linkQueue->rear = linkQueue->front; 143 }else{ 144 //将新结点链到队列尾部 rear指向它 145 linkQueue->rear->next = Node; 146 linkQueue->rear = Node; 147 } 148 149 } 150 151 #pragma mark - 出队列 152 int outLinkQueue(LinkQueue *linkQu,int &x){ 153 cout<<WWLine<<WWStr(出队列链队列地址)<<linkQu<<WWLine<<endl; 154 155 if (isEmptyLinkQueue(linkQu)) { 156 //链队列为空不能够出队列 157 cout<<WWStr(链队列为空,不能出队列)<<endl; 158 return 0; 159 } 160 161 //把当前链队列的头的数据赋值给x 162 LinkQueueNode *Node = linkQu->front; 163 x = Node->data; 164 165 cout<<WWStr(当前出队列的元素:)<<x<<endl; 166 167 //移动指针 如果有的话 front指向下一个结点 168 if(linkQu->front == linkQu->rear){ 169 linkQu->front = NULL; 170 linkQu->rear =NULL; 171 }else{ 172 linkQu->front = linkQu->front->next; 173 } 174 free(Node); 175 return 1; 176 }


    运行结果如下:

    -------------链队列初始化操作地址0x7fff5fbff618-------------

    -------------判断链队列是否为空队列地址0x7fff5fbff5c0-------------

    -------------进入链队列地址0x100202f90-------------

    当前入队列的元素1

    -------------判断链队列是否为空队列地址0x7fff5fbff560-------------

    -------------进入链队列地址0x100202f90-------------

    当前入队列的元素2

    -------------判断链队列是否为空队列地址0x7fff5fbff560-------------

    -------------进入链队列地址0x100202f90-------------

    当前入队列的元素3

    -------------判断链队列是否为空队列地址0x7fff5fbff560-------------

    -------------出队列链队列地址0x100202f90-------------

    -------------判断链队列是否为空队列地址0x7fff5fbff540-------------

    当前出队列的元素:1

    -------------出队列链队列地址0x100202f90-------------

    -------------判断链队列是否为空队列地址0x7fff5fbff540-------------

    当前出队列的元素:2

    -------------出队列链队列地址0x100202f90-------------

    -------------判断链队列是否为空队列地址0x7fff5fbff540-------------

    当前出队列的元素:3

    -------------出队列链队列地址0x100202f90-------------

    -------------判断链队列是否为空队列地址0x7fff5fbff540-------------

    链队列为空,不能出队列

    -------------进入链队列地址0x100202f90-------------

    当前入队列的元素4

    -------------判断链队列是否为空队列地址0x7fff5fbff560-------------

    -------------出队列链队列地址0x100202f90-------------

    -------------判断链队列是否为空队列地址0x7fff5fbff540-------------

    当前出队列的元素:4

    Program ended with exit code: 0

     

    如有错误 敬请指正

    如需转载 请注明出处 谢谢

    获取源码



     

    转载于:https://www.cnblogs.com/ITCoderW/p/7417997.html

    展开全文
  • 针对视频初始缓冲队列长度难以准确测量的问题,对非加密的优酷和加密的YouTube两类视频平台进行研究,提出了视频初始缓冲队列长度测量方法。通过识别分析视频流量特征,关联流量行为与播放状态,构建视频指纹库,...
  • 队列的结构体: typedef QNode* QDataType; // 链式结构:表示队列 typedef struct QNode { struct QNode* pNext; QDataType data; }QNode; // 队列的结构 typedef struct Queue { QNode *head; // 链表...

    队列的结构体:

    
    typedef QNode* QDataType;
    
    // 链式结构:表示队列 
    typedef struct QNode
    {
    	struct QNode* pNext;
    	QDataType data;
    }QNode;
    
    // 队列的结构 
    typedef struct Queue
    {
    	QNode *head;		// 链表的第一个结点
    	QNode *last;		// 链表的最后一个结点
    }Queue;

    函数功能汇总:

    // 初始化队列 
    void QueueInit(Queue* q); 
    
    // 队尾入队列 
    void QueuePush(Queue* q, QDataType data); 
    
    // 队头出队列 
    void QueuePop(Queue* q); 
    
    // 获取队列头部元素 
    QDataType QueueFront(Queue* q); 
    
    // 获取队列队尾元素 
    QDataType QueueBack(Queue* q); 
    
    // 获取队列中有效元素个数 
    int QueueSize(Queue* q); 
    
    // 检测队列是否为空,如果为空返回非零结果,如果非空返回0 
    int QueueEmpty(Queue* q); 
    
    // 销毁队列 
    void QueueDestroy(Queue* q); 

    初始化队列:

    //初始化队列
    void QueueInit(Queue* q)
    {
    	q->head = q->last = NULL;
    }

     队尾入队列(入队列):

    // 队尾入队列   //入队列
    void QueuePush(Queue* q, QDataType data)
    {
    	QNode *node = (QNode *)malloc(sizeof(QNode));
    	node->data = data;
    	node->pNext = NULL;
    	if (q->head == NULL)
    	{
    		q->head = node;
    		q->last = node;
    	}
    	else
    	{
    		q->last->pNext = node;
    		q->last = node;
    	}
    }
    

    队头出队列(出队列):

    // 队头出队列   //出队列
    void QueuePop(Queue* q)
    {
    	QNode* node = (QNode*)malloc(sizeof(QNode));
    	node = q->head;
    	free(q->head);
    	q->head = node;
    
    	// last 有没有可能也需要变更
    	if (q->head == NULL) {
    		q->last = NULL;
    	}
    }
    

    获取队列头部元素 :

    // 获取队列头部元素 
    QDataType QueueFront(Queue* q)
    {
    	return q->head->data;
    }

    获取队尾元素:

    // 获取队列队尾元素 
    QDataType QueueBack(Queue* q)
    {
    	return q->last->data;
    }

    获取队列中有效元素个数 :

    // 获取队列中有效元素个数 
    int QueueSize(Queue* q)
    {
    	int size;
    	for (QNode* c=q->head ; c !=NULL; c=c->pNext)
    	{
    		size++;
    	}
    	return size;
    }
    

    判空:

    // 检测队列是否为空,如果为空返回非零结果,如果非空返回0 
    int QueueEmpty(Queue* q)
    {
    	if (q->head == NULL)
    		return 1;
    	else
    		return 0;
    }

    销毁队列:

    // 销毁队列 
    void QueueDestroy(Queue* q)
    {
    	QNode* node;
    	for ( node =q->head; node !=NULL; node=node->pNext)
    	{
    		free(node);
    	}
    	q->head = NULL;
    	q->last = NULL;
    }

     

    展开全文
  • 消息队列初始

    2019-08-07 15:41:29
    如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。 消息队列的主要功能 a. 削峰 在秒杀或抢够活动中使用广泛使用。这种活动一般会因为流量过大,应用系统配置承载不了这股...
  • 结构定义 typedef int QElemType; typedef struct QNode{ QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct { //对头和队尾指针 QueuePtr front,rear;...//初始化 Status I...
  • C语言使用链表队列实现初始化,出队列,入队列,取队头,遍历 1.C语言使用链表队列实现初始化,出队列,入队列,取队头,遍历 #include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef...
  • 链式队列需要有队头指针和队尾指针才能唯一确定一个队列,头指针一般指向头结点,尾指针指向最后一个元素结点。空的队列就是队头指针和队尾指针都指向了头结点。在可以确地长度最大值时采用循环队列,无法估计长度的...
  • 数据结构算法题(假设以带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点(注意不设头指针) 试编写相应的队列初始化,入队列和出队列的算法!)
  • 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。 带头结点循环链队列CLQueue的类型为以下LinkList类型: [cpp] ...
  • (初始队列队列地址:) endl; } #pragma mark - 判断顺序队列是否为空 int isSequenceQueueEmpty(SequenceQueueNode sequenceQueue){ cout (判断顺序队列是否为空列队列地址:)((sequenceQueue.front == ...
  • 队列初始化 Deque<Integer> queue= new LinkedList<Integer>(); 插入队头/队尾元素:addFirst()、addLast() 删除队头/队尾元素:removeFirst()、removeLast() 获取队头/队尾元素:g.
  • 2、使用带参构造初始队列 3、成员方法定义入队出队操作 public class Queue { int maxSize;//队列最大容量 int rear;//模拟队列头指针 int front;//模拟队列尾指针 Object[] array; //使用数组模拟队列 /...
  • springboot rabbitMq队列初始化方法有多种方式这里列出4种 1.使用注解@Bean与类Queue单一队列初始化 如下 /** *若队列不存在创建队列第二个参数为是否持久化 * *@return */ @Bean publicQueueQueue1(){ ...
  • 主要介绍了springboot实现rabbitmq的队列初始化和绑定,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • //初始化循环队列 Status InitQueue(SqQueue *Q){ Q->front = 0; Q->rear = 0; return OK; } //求循环队列的长度 int QueueLength(SqQueue Q){ return (Q.rear-Q.front+MAXSIZE)%MAXSIZE; } //若队列未满,则...
  • 队列定义: 循环队列的定义方式根据个人决定,如下队列定义则是一个不带头节点的单项...#define QUEUE_INIT_SIZE 3 /* 循环队列初始长度 */ #define QUEUE_MIN_SIZE 2 /* 循环队列初始长度 */ typedef struct Q...
  • java实现循环队列操作 使用 类 模拟定义队列 public class LoopQueue { int maxSize;... * 循环队列初始化 * @param maxSize */ public LoopQueue(int maxSize) { // TODO Auto-generated construc
  • 优先级队列就是学生去食堂排队打饭,同普通队列一样,队头的先打饭,队尾的后打饭,但是这次有人比较厉害,他要插队,你不听他就打你。哎。package javal.util.test; public class PriorityQueue { private int ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,357
精华内容 4,542
关键字:

初始队列