Back to 课程

Computer-science_A-level_Cie

0% Complete
0/0 Steps
  1. computers-and-components
    6 主题
  2. logic-gates-and-logic-circuits
    2 主题
  3. central-processing-unit-cpu-architecture
    6 主题
  4. assembly-language-
    4 主题
  5. bit-manipulation
    1 主题
  6. operating-systems
    3 主题
  7. language-translators
    2 主题
  8. data-security
    3 主题
  9. data-integrity
    1 主题
  10. ethics-and-ownership
    3 主题
  11. database-concepts
    3 主题
  12. database-management-systems-dbms-
    1 主题
  13. data-definition-language-ddl-and-data-manipulation-language-dml
    1 主题
  14. computational-thinking-skills
    1 主题
  15. algorithms
    14 主题
  16. data-types-and-records
    2 主题
  17. arrays
    2 主题
  18. files
    1 主题
  19. introduction-to-abstract-data-types-adt
    1 主题
  20. programming-basics
    1 主题
  21. constructs
    2 主题
  22. structured-programming
    1 主题
  23. program-development-life-cycle
    2 主题
  24. program-design-
    2 主题
  25. program-testing-and-maintenance
    3 主题
  26. user-defined-data-types
    1 主题
  27. file-organisation-and-access-
    3 主题
  28. floating-point-numbers-representation-and-manipulation
    3 主题
  29. protocols
    2 主题
  30. circuit-switching-packet-switching
    1 主题
  31. processors-parallel-processing-and-virtual-machines
    5 主题
  32. boolean-algebra-and-logic-circuits
    4 主题
  33. purposes-of-an-operating-system-os
    3 主题
  34. translation-software
    3 主题
  35. encryption-encryption-protocols-and-digital-certificates
    3 主题
  36. artificial-intelligence-ai
    4 主题
  37. recursion
    1 主题
  38. programming-paradigms
    4 主题
  39. object-oriented-programming
    7 主题
  40. file-processing-and-exception-handling
    2 主题
  41. data-representation
    5 主题
  42. multimedia
    3 主题
  43. compression
    2 主题
  44. networks-and-the-internet
    11 主题
课 Progress
0% Complete

ADT from ADT

What does it mean?

  • You should be able to explain or demonstrate how you can build one abstract data type on top of another

  • For example:

    • A stack can be implemented using a linked list

    • A queue can be implemented using two stacks

    • A dictionary can be implemented using a binary search tree

  • You’re not just limited to built-in types like arrays, you can compose ADTs out of each other

What is an ADT?

  • If you are unsure what an ADT is, read our ADT overview page

How are ADTs implemented?

Using built-in types (e.g. arrays, lists)

ADT

Built-in type used

Example

Stack

List/array

Use .append() and .pop() in Python

Queue

List/array or circular buffer

Use .append() and .pop(0)

Linked list

Class with next fields

Implement nodes manually

Dictionary

Hash table (built-in dict)

Key-value mapping

Binary tree

Class with left and right

Each node links to children

Using other ADTs

ADT being built

Uses this ADT

Example

Queue

Two stacks

Enqueue in one stack, dequeue using a second stack

Stack

Linked list

Push/pop from head of list

Binary tree

Linked list or array

Nodes link to each other like a graph

Dictionary

Binary search tree

Store keys and values in BST for ordered lookup

Example: Implementing a Queue using Two Stacks

Idea:

  • Use two stacks (let’s say inStack and outStack) to simulate a queue

How it works:

  • enqueue(x) → push x onto inStack

  • dequeue() → if outStack is empty, pop all items from inStack and push onto outStack, then pop from outStack

  • This simulates FIFO behaviour using LIFO operations from stacks

Responses

您的邮箱地址不会被公开。 必填项已用 * 标注