首页 > 其他分享 >Queue-Linked List Implementation【1月22日学习笔记】

Queue-Linked List Implementation【1月22日学习笔记】

时间:2024-01-22 11:36:34浏览次数:35  
标签:node temp 22 Implementation List front NULL rear 指针

点击查看代码
//Queue-Linked List Implementation
#include<iostream>
using namespace std;
struct node {
	int data;
	node* next;
};

node* front = NULL;
node* rear = NULL;//末指针·,则不用遍历整个链表,constant time

void Enqueue(int x) {
	node* temp = new node;
	temp->data = x;
	temp->next = NULL;

	if (front == NULL && rear == NULL) {//头末指针均空
		front = rear = temp;//注意赋值表达式
		return;
	}
	rear->next = temp;//先将末节点尾巴指向新节点
	rear = temp;//再将末指针指向新节点

}//时间复杂度:O(1)

void Dequeue() {
	if (front == NULL)  return;

	node* run = front;//头指针不为空时
	if (front == rear) {//头末指针重合时,只剩一个节点
		front = rear = NULL;//front和rear是全局变量,注意悬空指针问题
		                    /*****跟头指针相关的节点操作必须单独讨论*****/
	}
	else {
		front = run->next;
	}
	delete run;
}//时间复杂度:O(1)

int Front() {
	if (front == NULL)   return;
	return front->data;
}

void Print() {
	node* run = front;
	while (run != NULL) {
		cout << run->data << " ";
		run = run->next;
	}
	cout << endl;
}

int main() {
	Enqueue(2); Print();
	Enqueue(4); Print();
	Enqueue(6); Print();
	Dequeue();  Print();
	Enqueue(8); Print();
}
	


标签:node,temp,22,Implementation,List,front,NULL,rear,指针
From: https://www.cnblogs.com/whvivy/p/17979667

相关文章

  • 【240122-1】已知:a^2-b^2=6,ab=4 求:a、b的值?
    ......
  • 【glibc】glib库单向链表GSList介绍
    glib库单向链表介绍glib库里实现了一些基本的数据结构,比如单向链表,双向链表、队列、树、hash表和数组。这篇文章里我主要介绍在linux平台下使用glib库中的单向链表进行编程,以后的文章我会陆续介绍双向链表、队列和其它数据结构的用法。单向链表(即GSList)是glib库里最简单的容具,它......
  • ubuntu22.04 mysql服务每天自动shutdown问题
    1.问题描述MYSQL每天自动关闭,查看/var/log/mysql/error.log.1.gz,内容如下:2019-06-12T06:33:13.582973+08:000[Note]Shuttingdownplugin‘CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS’2019-06-12T06:33:13.583022+08:000[Note]Shuttingdownplugin‘CONNECTION_CON......
  • 【glibc】glib库双向链表GList介绍
    在上一篇文章里我介绍了glib库中单向链表的用法,这篇文章介绍glib库双向链表的用法,还是沿用上一篇文章的风格,采用在代码中加入注释来说明代码,最后贴出程序的运行结果,然后加以少量说明。双向链表与单向链表的区别是,从一个节点,不仅能访问到它的下一个节点,还能访问到它的上一个节点,其......
  • Mariadb 5.6.68 安装笔记 by Ubuntu 22.04
    安装方式压缩包安装添加apt源安装选择压缩包安装,apt源在国内好像都连不通安装过程下载压缩包https://mariadb.org/download/?t=mariadb&p=mariadb&r=11.4.0&os=Linux&cpu=x86_64&pkg=tar_gz&i=systemd&m=xtom_hkhttps://archive.mariadb.org//mariadb-5.5.68/bintar-......
  • 提速40%!江波龙推出XP2200系列M.2 2280规格SSD:疾速7100MB/s
    江波龙FORESEEXP2200系列PCIeSSD推出M.22280规格。产品搭载主流232层3DTLC闪存颗粒,并采用基于12nm工艺的4通道高性能主控芯片,支持HMB主机高速缓冲技术,能够提供高达2400MT/s的I/O速率,进一步释放产品潜能。产品所用的主控芯片减少了一半的读写通道数量,从而显著降低25%的功耗并减......
  • 每日一题 2024-1-22 最大交换
    1.题目(中等)原题链接给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。示例1:输入:2736输出:7236解释:交换数字2和数字7。示例2:输入:9973输出:9973解释:不需要交换。注意:给定数字的范围是\([0,10^8]\)2.解题思路贪心,......
  • 传入一个List集合,返回分页好的数据
    传入一个List集合,返回分页好的数据。定义分页信息类:packagecom.cn.common;importjava.util.List;publicclassCommonPage<T>{privateintcurrentPage;privateinttotalPage;privateintpageSize;privatejava.util.List<T>list;publ......
  • 动态规划- leecode 122
    Problem:122.买卖股票的最佳时机II目录思路解题方法复杂度Code思路仍然是一道比较简单的动态规划,但是一上手做还是没理清楚状态是什么。一天的状态只有两种,持有股票和没有股票,这样就可以列出状态转移方程\(dp[i][j]=max(dp[i-1][j],dp[i-1][j*]+或-price[i])\),这里的j表......
  • PG DBA培训22:PostgreSQL运维诊断之操作系统分析
    本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQLOperatingSystemAnalysisandDiagnosis,学完本课程可以掌握PostgreSQL操作系统性能优化分析及工具说明,操作系统工具之top/topas,操作系统工具之vmstat,操作系统工具之iostat,操作系统工具之free/lsps/swapinf......