[WGU C949 DATA STRUCTURES 2026] – EXAM-STYLE QUESTIONS AND ANSWERS
| VERIFIED AND WELL DETAILED ANSWERS | PLUS RATIONALES | GUARANTEED
PASS | 2026/27 LATEST UPDATE | EXAM PREP | STUDY GUIDE | PRACTICE TEST
1. Which characteristic best defines an abstract data type (ADT) in computer
science?
A. A data type defined by its physical representation in memory.
B. A data type defined by its behavior and operations from the perspective of the
user.
C. A data type that can only store primitive data like integers and characters.
D. A data type that is inherently tied to a specific programming language.
Correct Answer: B. A data type defined by its behavior and operations from the
perspective of the user.
Rationale: An ADT is defined by its interface and the semantics of its operations, not
its implementation. This abstraction allows the user to interact with the data
structure without knowing its internal details, such as whether a list is implemented
as an array or a linked list. Options A, C, and D are incorrect because they describe
implementation details, limitations, or language-specific constructs, respectively,
which are not defining characteristics of an ADT.
2. Which of the following is a fundamental difference between an array and a
singly linked list?
A. Arrays allow for dynamic resizing, while linked lists have a fixed size.
B. Linked lists provide constant-time access to any element, while arrays provide
linear-time access.
C. Arrays allocate contiguous memory blocks, while linked lists allocate nodes
,non-contiguously.
D. Inserting at the beginning of a linked list is more memory-intensive than
inserting at the beginning of an array.
Correct Answer: C. Arrays allocate contiguous memory blocks, while linked lists
allocate nodes non-contiguously.
Rationale: The primary difference lies in memory allocation. An array's elements
are stored in a single, contiguous block of memory, whereas a linked list's nodes are
scattered throughout memory, linked by pointers. Option A is incorrect because
arrays are fixed-size, and linked lists can grow dynamically. Option B is incorrect
because arrays provide O(1) access and linked lists provide O(n) access. Option D is
incorrect because insertion at the head of a linked list (O(1)) is generally more
efficient than in an array (O(n)).
3. What is the time complexity of accessing an element at a specific index in an
array-based list?
A. O(1)
B. O(log n)
C. O(n)
D. O(n log n)
Correct Answer: A. O(1)
Rationale: Arrays provide direct memory access. Given the base address and the
size of each element, the memory address of the element at any index can be
calculated directly. This calculation takes constant time. Options B, C, and D
represent more complex time complexities associated with other operations or data
structures, not direct indexing.
,4. In an array-based stack, what potential issue can arise if elements are pushed
beyond the allocated capacity?
A. The stack will automatically overwrite the oldest elements.
B. The stack will cause a segmentation fault or an index-out-of-bounds exception.
C. The stack will dynamically reallocate memory to a larger size without any
overhead.
D. The push operation will fail silently, and the data will be lost.
Correct Answer: B. The stack will cause a segmentation fault or an index-out-
of-bounds exception.
Rationale: An array has a fixed size. Attempting to access or modify memory
outside the bounds of the array is a critical error, leading to exceptions or faults.
Option A describes a circular buffer behavior. Option C ignores the overhead of
reallocation and copying. Option D is unlikely to occur as failure typically results in
an explicit error.
5. A developer is evaluating a dynamic array (e.g., a vector) for a project. What
is a key advantage of this data structure over a static array?
A. It guarantees O(1) time complexity for all operations.
B. It consumes less memory than a static array for the same number of elements.
C. It automatically resizes to accommodate additional elements when needed.
D. It is inherently thread-safe and can be used in multi-threaded environments
without synchronization.
Correct Answer: C. It automatically resizes to accommodate additional
elements when needed.
, Rationale: The defining characteristic of a dynamic array is its ability to grow as
elements are added, abstracting away the management of capacity. Option A is
incorrect because insertion in the middle is O(n). Option B is incorrect because
dynamic arrays often allocate extra capacity, leading to greater memory
consumption. Option D is incorrect because thread-safety is not an inherent
feature.
6. Which of the following data structures is most suitable for implementing a
"Last-In-First-Out" (LIFO) policy?
A. Queue
B. Stack
C. Deque
D. Priority Queue
Correct Answer: B. Stack
Rationale: A stack is explicitly defined by its LIFO behavior. The last element added
(pushed) is the first one removed (popped). Option A is incorrect because a queue is
FIFO. Option C is a double-ended queue, supporting both FIFO and LIFO. Option D
is based on priority, not order.
7. A project manager needs to process print jobs in the order they are received.
Which data structure should a developer recommend for managing the print
queue?
A. Stack
B. Queue
C. Hash Table
D. Binary Tree
| VERIFIED AND WELL DETAILED ANSWERS | PLUS RATIONALES | GUARANTEED
PASS | 2026/27 LATEST UPDATE | EXAM PREP | STUDY GUIDE | PRACTICE TEST
1. Which characteristic best defines an abstract data type (ADT) in computer
science?
A. A data type defined by its physical representation in memory.
B. A data type defined by its behavior and operations from the perspective of the
user.
C. A data type that can only store primitive data like integers and characters.
D. A data type that is inherently tied to a specific programming language.
Correct Answer: B. A data type defined by its behavior and operations from the
perspective of the user.
Rationale: An ADT is defined by its interface and the semantics of its operations, not
its implementation. This abstraction allows the user to interact with the data
structure without knowing its internal details, such as whether a list is implemented
as an array or a linked list. Options A, C, and D are incorrect because they describe
implementation details, limitations, or language-specific constructs, respectively,
which are not defining characteristics of an ADT.
2. Which of the following is a fundamental difference between an array and a
singly linked list?
A. Arrays allow for dynamic resizing, while linked lists have a fixed size.
B. Linked lists provide constant-time access to any element, while arrays provide
linear-time access.
C. Arrays allocate contiguous memory blocks, while linked lists allocate nodes
,non-contiguously.
D. Inserting at the beginning of a linked list is more memory-intensive than
inserting at the beginning of an array.
Correct Answer: C. Arrays allocate contiguous memory blocks, while linked lists
allocate nodes non-contiguously.
Rationale: The primary difference lies in memory allocation. An array's elements
are stored in a single, contiguous block of memory, whereas a linked list's nodes are
scattered throughout memory, linked by pointers. Option A is incorrect because
arrays are fixed-size, and linked lists can grow dynamically. Option B is incorrect
because arrays provide O(1) access and linked lists provide O(n) access. Option D is
incorrect because insertion at the head of a linked list (O(1)) is generally more
efficient than in an array (O(n)).
3. What is the time complexity of accessing an element at a specific index in an
array-based list?
A. O(1)
B. O(log n)
C. O(n)
D. O(n log n)
Correct Answer: A. O(1)
Rationale: Arrays provide direct memory access. Given the base address and the
size of each element, the memory address of the element at any index can be
calculated directly. This calculation takes constant time. Options B, C, and D
represent more complex time complexities associated with other operations or data
structures, not direct indexing.
,4. In an array-based stack, what potential issue can arise if elements are pushed
beyond the allocated capacity?
A. The stack will automatically overwrite the oldest elements.
B. The stack will cause a segmentation fault or an index-out-of-bounds exception.
C. The stack will dynamically reallocate memory to a larger size without any
overhead.
D. The push operation will fail silently, and the data will be lost.
Correct Answer: B. The stack will cause a segmentation fault or an index-out-
of-bounds exception.
Rationale: An array has a fixed size. Attempting to access or modify memory
outside the bounds of the array is a critical error, leading to exceptions or faults.
Option A describes a circular buffer behavior. Option C ignores the overhead of
reallocation and copying. Option D is unlikely to occur as failure typically results in
an explicit error.
5. A developer is evaluating a dynamic array (e.g., a vector) for a project. What
is a key advantage of this data structure over a static array?
A. It guarantees O(1) time complexity for all operations.
B. It consumes less memory than a static array for the same number of elements.
C. It automatically resizes to accommodate additional elements when needed.
D. It is inherently thread-safe and can be used in multi-threaded environments
without synchronization.
Correct Answer: C. It automatically resizes to accommodate additional
elements when needed.
, Rationale: The defining characteristic of a dynamic array is its ability to grow as
elements are added, abstracting away the management of capacity. Option A is
incorrect because insertion in the middle is O(n). Option B is incorrect because
dynamic arrays often allocate extra capacity, leading to greater memory
consumption. Option D is incorrect because thread-safety is not an inherent
feature.
6. Which of the following data structures is most suitable for implementing a
"Last-In-First-Out" (LIFO) policy?
A. Queue
B. Stack
C. Deque
D. Priority Queue
Correct Answer: B. Stack
Rationale: A stack is explicitly defined by its LIFO behavior. The last element added
(pushed) is the first one removed (popped). Option A is incorrect because a queue is
FIFO. Option C is a double-ended queue, supporting both FIFO and LIFO. Option D
is based on priority, not order.
7. A project manager needs to process print jobs in the order they are received.
Which data structure should a developer recommend for managing the print
queue?
A. Stack
B. Queue
C. Hash Table
D. Binary Tree