- 浏览: 768650 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
LinkedQueue.h
LinkedQueue.cpp
#ifndef LINKEDQUEUE_H #define LINKEDQUEUE_H #include<iostream> #include"../T2/LinkedList.h" #include"Queue.h" using namespace std; template<typename T> class LinkedQueue:public Queue<T>{ public: LinkedQueue():rear(NULL),front(NULL){} ~LinkedQueue(){makeEmpty();} bool EnQueue(const T &x); bool DeQueue(T &x); bool getFront(T &x); void makeEmpty(); bool IsEmpty() const; bool IsFull() const{return false;} int getSize() const; friend ostream& operator<<(ostream& os,LinkedQueue& queue){ LinkNode<T> *current = queue.front; while(NULL!=current){ os << current->data << " "; current = current->link; } os << endl; return os; } protected: LinkNode<T> *front,*rear; }; #endif // LINKEDQUEUE_H
LinkedQueue.cpp
#include"LinkedQueue.h" template<typename T> bool LinkedQueue<T>::EnQueue(const T &x) { if(IsEmpty()){ front = rear = new LinkNode<T>(x); if(NULL==front) return false; }else{ rear->link = new LinkNode<T>(x); if(NULL==rear->link) return false; rear = rear->link; } return true; } template<typename T> bool LinkedQueue<T>::DeQueue(T &x) { if(IsEmpty()){ return false; } LinkNode<T>* del = front; x = del->data; front = front->link; delete del; return true; } template<typename T> bool LinkedQueue<T>::getFront(T &x) { if(IsEmpty()){ return false; } x = front->data; return true; } template<typename T> void LinkedQueue<T>::makeEmpty() { LinkNode<T> *del; while(front!=NULL){ del = front; front = front->link; delete del; } } template<typename T> bool LinkedQueue<T>::IsEmpty() const { return front==NULL?true:false; } template<typename T> int LinkedQueue<T>::getSize() const { LinkNode<T> *current = front; int i = 0; while(NULL!=current){ i++; current = current->link; } return i; } int main() { LinkedQueue<int> queue; int num=0; for(int i=0;i<10;++i){ num++; queue.EnQueue(num); } cout << queue; for(int j=1;j<5;++j){ queue.DeQueue(num); } cout << queue; queue.getFront(num); cout << "front:" << num << ",size:" << queue.getSize() << endl; } 1 2 3 4 5 6 7 8 9 10 5 6 7 8 9 10 front:5,size:6
发表评论
-
时间复杂度推导
2012-06-05 22:57 9831.用常数1取代运行时间中的所有加法常数 2.在修改后的运行次 ... -
数据结构概论2
2012-06-04 22:19 809数据元素:组成数据的,有一定意义的基本单位,在计算机中通常作为 ... -
排序概念
2011-06-24 14:51 788数据表:待排序数据元素的有很集合 排序码:通常数据元素有多个 ... -
图的基本概念
2011-06-20 16:18 749完全图:n个顶点,n*(n-1)/2个边的无向图,就是无向完全 ... -
红黑树
2011-06-16 14:29 516红黑树: 1.根结点和所有的叶结点都是黑色 2.从根结点到叶结 ... -
链表反转
2011-06-12 18:03 1101template<typename T> v ... -
散列表(哈希表)
2011-06-09 09:55 1081散列表(hash table):是表示集合和字典的另一种有效方 ... -
跳 表
2011-06-08 11:12 804#ifndef SKIPLIST_H #define S ... -
字 典
2011-06-08 10:06 925字典:以集合为基础,并支持支持Member,Insert和Re ... -
LinkedSet
2011-06-07 13:08 924改了很久的bug #ifndef LINKEDSET_H ... -
bitset
2011-06-06 12:27 885bitSet.h #ifndef BITSET_H #d ... -
Huffman树
2011-06-02 11:06 917Huffman树,又称最优二叉树,是一类加权路径长度最短的二叉 ... -
堆
2011-06-02 09:19 952在优先级队列的各种实现中,堆是最高效的一种数据结构 关键码: ... -
森 林
2011-06-01 11:09 602森林与二叉树互转,主要是子结点转左子树,兄弟结点转右子树 深 ... -
二叉树的链式实现
2011-05-31 11:24 1264binaryTree.h #ifndef LINKEDBI ... -
二叉树基本概念
2011-05-30 10:05 844一棵二叉树的结点的一个有限集合:该集合或者为空,或者是由一个根 ... -
树基本概念
2011-05-30 09:28 894结点(node):包含数据项及指向其他结点的分支。 结点的度( ... -
广义表
2011-05-27 10:57 936广义表的定义是递归的,因为在表的描述中又用到了表,允许表中有表 ... -
矩阵相关
2011-05-26 10:22 932矩阵:是一个具有m行n列的二维数组。 上三角矩阵:只存储对角 ... -
优先级队列
2011-05-21 11:24 603PQueue.h #ifndef PQUEUE_H #d ...
相关推荐
链式队列是一种在计算机科学中广泛使用的数据结构,它基于链表实现,与传统的数组队列相比,具有更大的灵活性。在本程序中,我们主要关注链式队列的六个核心操作,这些操作对于理解和应用链式队列至关重要。 1. **...
链式队列是一种数据结构,它是队列的一种特殊形式,主要使用链表来存储队列中的元素。在C语言中,链式队列的实现通常涉及结构体的定义、节点的创建与销毁、以及一系列针对队列操作的函数。下面我们将深入探讨链式...
链式队列是一种基于链表的数据结构,常用于实现队列这种先进先出(FIFO,First In First Out)的数据组织方式。在C++中,链式队列可以通过定义一个节点类来存储队列中的元素,并通过头节点和尾节点来追踪队列的状态...
链式队列是一种在计算机科学中广泛使用的数据结构,它属于线性数据结构的一种,用于实现队列这种抽象数据类型。在链式队列中,元素的存储位置不连续,而是通过指针链接起来,这使得插入和删除操作更加灵活。下面我们...
该文件实现链式队列功能,包含队列的创建queucreat、入队add与出队output,并通过打印显示函数的执行效果。
顺序队列和链式队列的实现 在计算机科学中,队列是一种重要的数据结构,广泛应用于多种领域。在本节中,我们将讨论顺序队列和链式队列的实现。 顺序队列 顺序队列是一种基于数组的队列实现方式。其主要特点是使用...
链式队列
数据结构在计算机科学中扮演着至关重要的角色,而链式队列作为一种常用的数据结构,它在处理大量数据的入队和出队操作时表现出高效性。本篇文章将深入探讨链式队列的实现,以及与之相关的编程概念和技术。 首先,...
链式队列是一种数据结构,它是队列的一种特殊形式,主要特点是使用链表来存储队列中的元素。在计算机科学中,队列是一种先进先出(First In First Out,简称FIFO)的数据结构,用于模拟各种排队现象。下面将详细讨论...
链式队列是一种在计算机科学中广泛使用的数据结构,它以链表为基础,实现了队列“先进先出”(FIFO)的原则。在C++中实现链式队列,可以让我们更加灵活地处理数据,特别是在处理大量数据或者需要动态扩展容量的场景...
在Java中,队列的实现主要有三种:顺序队列、链式队列和循环队列。下面我们将详细探讨这三种队列的实现方式。 1. **顺序队列**: 顺序队列通常是基于数组实现的。在Java中,我们可以使用ArrayList或LinkedList来...
在本项目中,“数据结构链式队列程序”是一个用C++语言实现的队列数据结构实例,它通过链表来存储元素,具有高效插入和删除操作的能力。 链式队列相比于数组实现的队列,其优势在于动态扩展性。数组队列在预先分配...
链式队列是一种数据结构,它是队列的一种实现方式,主要特点是使用链表来存储队列中的元素。在计算机科学中,队列是一种先进先出(First In First Out, FIFO)的数据结构,常用于处理一系列待处理的任务或事件。与...
JAVA语言实现数据的链式结构 分享下挣挣人气
"C++模板类实现的链式队列" 本篇文章将详细介绍C++模板类实现的链式队列,包括队列的链式存储结构、队列类的设计、函数实现等方面的知识点。 一、队列的链式存储结构 在C++中,队列可以使用链式存储结构来实现。...
链式队列是一种在计算机科学中用于数据组织和操作的数据结构,它在概念上类似于现实生活中的排队等待。链式队列是数据结构课程中的一个重要概念,尤其对于学习C语言和其他编程语言的学生来说,理解并能实际操作链式...
链式队列是一种数据结构,它是队列的一种实现方式,主要用在计算机科学的数据处理中。与传统的数组实现的顺序队列不同,链式队列使用链表来存储元素,这样可以更灵活地处理动态变化的容量需求。下面将详细阐述链式...
链式队列是一种在计算机科学中广泛使用的数据结构,它属于线性数据结构的一种,主要用于存储和处理一系列有序的数据元素。与传统的数组实现的顺序队列不同,链式队列利用链表作为底层数据结构,这使得在进行插入和...
链式队列是一种数据结构,它是队列的一种特殊形式,主要特点是利用链式存储结构来实现元素的存储。与顺序队列(数组实现)不同,链式队列在添加和删除元素时不需要考虑数组扩容或缩容的问题,具有更高的灵活性。在本...