4.2.3
Queues
Queues
Queues
A queue is a data structure where data items are always added to the end and removed from the front. It is often referred to as a 'first in, first out’ data structure.


Queues
Queues
- Queues can be implemented using other data structures, such as arrays or linked lists.
- In either case, two extra variables are required to identify the front and rear of the queue.
- Queues can be ‘static’ (fixed in size) or ‘dynamic’ (able to grow in size as necessary)


Queue operations
Queue operations
- Several operations can be carried out on queues:
- enQueue() - adds an item to the rear of a queue.
- deQueue() - removes and displays the item at the front of a queue.
- isEmpty() - checks to see if the queue is empty.
- isFull() - checks to see if the queue is full.


Uses
Uses
- Queues have a wide range of uses in computer science, including:
- Storing print jobs until the printer is ready to print.
- CPU scheduling.
- Breadth-first traversal of a graph.


Linear or circular
Linear or circular
- Queues can also be ‘linear’ or ‘circular’.
- When an item of data is removed from the front of a linear queue, all the other items move up one place.
- This is only suitable in a small queue, otherwise data processing time can be excessive.
- When an item of data is removed from the front of a circular queue, the only processing required is to update the two pointers identifying the new front and rear of the queue.
1Components of a Computer
1.1Structure & Function of the Processor
1.2Types of Processors
1.3Input, Output & Storage
1.3.1Elements of Computer Systems
1.3.2Types of Computer Systems
1.3.3How Magnetic Storage Works
1.3.4Properties of Magnetic Storage
1.3.5Examples of Magnetic Storage
1.3.6How Optical Storage Works
1.3.7Properties of Optical Storage
1.3.8Examples of Optical Storage
1.3.9Types of Optical Disc
1.3.10Random Access Memory
1.3.11Read Only Memory
1.3.12Uses of Flash Memory
1.3.13Properties of Flash Memory
1.3.14What to do When We Run Out of Memory
1.3.15How Virtual Memory Works
2Software & Software Development
2.1Systems Software
2.2Applications Generation
2.2.1Applications Software
2.2.2Utilities
2.2.3Encryption Software
2.2.4Defragmentation Software
2.2.5Data Compression Software
2.2.6Backup Software
2.2.7Open Source Software
2.2.8Proprietary Software
2.2.9Licensing Issues
2.2.10Compilers
2.2.11Interpreters
2.2.12Assemblers
2.2.13Compiling a Program
2.2.14Lexical Analysis
2.2.15Compilation Stages
2.2.16Linkers, Loaders & Libraries
2.3Software Development
2.3.1Algorithmic Thinking
2.3.2Waterfall Lifecycle
2.3.3Waterfall Lifecycle - Strengths & Weaknesses
2.3.4Agile Methodology
2.3.5Agile Methodology - Strengths & Weaknesses
2.3.6Extreme Programming
2.3.7Extreme Programming - Strengths & Weaknesses
2.3.8Spiral Methodology
2.3.9Spiral Methodology - Strengths & Weaknesses
2.3.10Rapid Application Development
2.3.11RAD - Strengths & Weaknesse
2.4Types of Programming Language
3Exchanging Data
3.1Compression, Encryption & Hashing
3.2Databases
3.3Networks
3.3.1The Benefits of Networks
3.3.2Network Performance
3.3.3Types of Networks
3.3.4Network Protocols
3.3.5Transmission Protocols
3.3.6What is the Internet?
3.3.7Uniform Resource Locators
3.3.8Domain Name Service
3.3.9Web Hosting
3.3.10Layering Concepts
3.3.11TCP &. OSI Models
3.3.12The Advantages of Layering
3.3.13What's in a Packet?
3.3.14How do Packets get Routed?
3.3.15Did my Data Arrive Safely?
3.3.16Network Hardware
3.3.17Transmission Media
3.3.18Firewalls
3.3.19Proxies
3.3.20Client-Server Model
3.3.21Advantages of the Client Server Model
3.3.22Disadvantages of the Client Server Model
3.3.23Peer-to-Peer Model
3.3.24Advantages of the Peer-to-Peer Model
3.3.25Disadvantages of the Peer-to-Peer Model
4Data Types, Data Structures & Algorithms
4.1Data Types
4.1.1Data Types
4.1.2Casting
4.1.3Arrays
4.1.42D Arrays
4.1.5Strings
4.1.6Binary
4.1.7Sign & Magnitude
4.1.8Binary Addition
4.1.9Binary Shifts
4.1.10Hexadecimal
4.1.11Using Hexadecimal
4.1.12Converting Binary & Hexadecimal
4.1.13Converting Denary & Hexadecimal
4.1.14Floating Points in Binary
4.1.15Normalisation of Floating Points
4.1.16Floating Point Addition
4.1.17Floating Point Subtraction
4.1.18Bitwise Manipulation - Shifts
4.1.19Bitwise Manipulation - Masks
4.1.20Character Sets
4.1.21ASCII
4.1.22Unicode
4.2Data Structures
5Legal, Moral, Cultural & Ethical Issues
5.1Computing Related Legislation
5.2Moral & Ethical Issues
5.2.1Online Activity Tracking
5.2.2Censorship
5.2.3Positive Cultural Impacts
5.2.4Negative Cultural Impacts
5.2.5E-Waste
5.2.6Energy Consumption
5.2.7Positive Environmental Impact
5.2.8Layout, Colour Paradigms & Character Sets
5.2.9Computers in the Workplace
5.2.10Automated Decision-Making
5.2.11Artificial Intelligence
5.2.12Monitoring Behaviour
5.2.13Analysing Personal Information
5.2.14Piracy & Offensive Communication
6Elements of Computational Thinking
6.1Thinking Abstractly
6.2Thinking Ahead
6.3Thinking Procedurally
6.4Thinking Logically
6.5Thinking Concurrently
7Problem Solving & Programming
7.1Programming Techniques
7.2Programming Construction
Jump to other topics
1Components of a Computer
1.1Structure & Function of the Processor
1.2Types of Processors
1.3Input, Output & Storage
1.3.1Elements of Computer Systems
1.3.2Types of Computer Systems
1.3.3How Magnetic Storage Works
1.3.4Properties of Magnetic Storage
1.3.5Examples of Magnetic Storage
1.3.6How Optical Storage Works
1.3.7Properties of Optical Storage
1.3.8Examples of Optical Storage
1.3.9Types of Optical Disc
1.3.10Random Access Memory
1.3.11Read Only Memory
1.3.12Uses of Flash Memory
1.3.13Properties of Flash Memory
1.3.14What to do When We Run Out of Memory
1.3.15How Virtual Memory Works
2Software & Software Development
2.1Systems Software
2.2Applications Generation
2.2.1Applications Software
2.2.2Utilities
2.2.3Encryption Software
2.2.4Defragmentation Software
2.2.5Data Compression Software
2.2.6Backup Software
2.2.7Open Source Software
2.2.8Proprietary Software
2.2.9Licensing Issues
2.2.10Compilers
2.2.11Interpreters
2.2.12Assemblers
2.2.13Compiling a Program
2.2.14Lexical Analysis
2.2.15Compilation Stages
2.2.16Linkers, Loaders & Libraries
2.3Software Development
2.3.1Algorithmic Thinking
2.3.2Waterfall Lifecycle
2.3.3Waterfall Lifecycle - Strengths & Weaknesses
2.3.4Agile Methodology
2.3.5Agile Methodology - Strengths & Weaknesses
2.3.6Extreme Programming
2.3.7Extreme Programming - Strengths & Weaknesses
2.3.8Spiral Methodology
2.3.9Spiral Methodology - Strengths & Weaknesses
2.3.10Rapid Application Development
2.3.11RAD - Strengths & Weaknesse
2.4Types of Programming Language
3Exchanging Data
3.1Compression, Encryption & Hashing
3.2Databases
3.3Networks
3.3.1The Benefits of Networks
3.3.2Network Performance
3.3.3Types of Networks
3.3.4Network Protocols
3.3.5Transmission Protocols
3.3.6What is the Internet?
3.3.7Uniform Resource Locators
3.3.8Domain Name Service
3.3.9Web Hosting
3.3.10Layering Concepts
3.3.11TCP &. OSI Models
3.3.12The Advantages of Layering
3.3.13What's in a Packet?
3.3.14How do Packets get Routed?
3.3.15Did my Data Arrive Safely?
3.3.16Network Hardware
3.3.17Transmission Media
3.3.18Firewalls
3.3.19Proxies
3.3.20Client-Server Model
3.3.21Advantages of the Client Server Model
3.3.22Disadvantages of the Client Server Model
3.3.23Peer-to-Peer Model
3.3.24Advantages of the Peer-to-Peer Model
3.3.25Disadvantages of the Peer-to-Peer Model
4Data Types, Data Structures & Algorithms
4.1Data Types
4.1.1Data Types
4.1.2Casting
4.1.3Arrays
4.1.42D Arrays
4.1.5Strings
4.1.6Binary
4.1.7Sign & Magnitude
4.1.8Binary Addition
4.1.9Binary Shifts
4.1.10Hexadecimal
4.1.11Using Hexadecimal
4.1.12Converting Binary & Hexadecimal
4.1.13Converting Denary & Hexadecimal
4.1.14Floating Points in Binary
4.1.15Normalisation of Floating Points
4.1.16Floating Point Addition
4.1.17Floating Point Subtraction
4.1.18Bitwise Manipulation - Shifts
4.1.19Bitwise Manipulation - Masks
4.1.20Character Sets
4.1.21ASCII
4.1.22Unicode
4.2Data Structures
5Legal, Moral, Cultural & Ethical Issues
5.1Computing Related Legislation
5.2Moral & Ethical Issues
5.2.1Online Activity Tracking
5.2.2Censorship
5.2.3Positive Cultural Impacts
5.2.4Negative Cultural Impacts
5.2.5E-Waste
5.2.6Energy Consumption
5.2.7Positive Environmental Impact
5.2.8Layout, Colour Paradigms & Character Sets
5.2.9Computers in the Workplace
5.2.10Automated Decision-Making
5.2.11Artificial Intelligence
5.2.12Monitoring Behaviour
5.2.13Analysing Personal Information
5.2.14Piracy & Offensive Communication
6Elements of Computational Thinking
6.1Thinking Abstractly
6.2Thinking Ahead
6.3Thinking Procedurally
6.4Thinking Logically
6.5Thinking Concurrently
7Problem Solving & Programming
7.1Programming Techniques
7.2Programming Construction
Unlock your full potential with Seneca Premium
Unlimited access to 10,000+ open-ended exam questions
Mini-mock exams based on your study history
Unlock 800+ premium courses & e-books