Static and dynamic representation of linked list in data structure

Static Data Structure vs Dynamic Data Structure

Data structure is a way of storing and organizing data efficiently such that the required operations on them can be performed be efficient with respect to time as well as memory. Simply, Data Structure are used to reduce complexity (mostly the time complexity) of the code.

Data structures can be two types :
1. Static Data Structure
2. Dynamic Data Structure

What is a Static Data structure?
In Static data structure the size of the structure is fixed. The content of the data structure can be modified but without changing the memory space allocated to it.

Example of Static Data Structures: Array



What is Dynamic Data Structure?
In Dynamic data structure the size of the structure in not fixed and can be modified during the operations performed on it. Dynamic data structures are designed to facilitate change of data structures in the run time.

Example of Dynamic Data Structures: Linked List

Static Data Structure vs Dynamic Data Structure
Static Data structure has fixed memory size whereas in Dynamic Data Structure, the size can be randomly updated during run time which may be considered efficient with respect to memory complexity of the code. Static Data Structure provides more easier access to elements with respect to dynamic data structure. Unlike static data structures, dynamic data structures are flexible.

Use of Dynamic Data Structure in Competitive Programming
In competitive programming the constraints on memory limit is not much high and we cannot exceed the memory limit. Given higher value of the constraints we cannot allocate a static data structure of that size so Dynamic Data Structures can be useful.

Also, please refer Linked List vs Array for more information.

Article Tags :
Arrays
Data Structures
Practice Tags :
Data Structures
Arrays
Read Full Article

C


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
// A Linked List Node
struct Node
{
int data;
struct Node* next;
};
// Helper function to print a given linked list
void printList(struct Node* head)
{
struct Node* temp = head;
while (temp)
{
printf("%d —> ", temp->data);
temp = temp->next;
}
printf("NULL");
}
int main(void)
{
struct Node e = { 5, NULL };// last node
struct Node d = { 4, &e };
struct Node c = { 3, &d };
struct Node b = { 2, &c };
struct Node a = { 1, &b };// first node
struct Node* head = &a;
printList(head);
return 0;
}

DownloadRun Code

Output:

1 —> 2 —> 3 —> 4 —> 5 —> NULL

Video liên quan

Postingan terbaru

LIHAT SEMUA