0% found this document useful (0 votes)
37 views

Data Structure

1) The document describes different data structures including one dimensional arrays, two dimensional arrays, singly linked lists, and doubly linked lists. 2) It provides examples of how to access elements in each structure by using indexes or by traversing from one element to the next. 3) The key aspects covered are the structure of each type, how they store data and pointers/addresses, and how to navigate between elements.

Uploaded by

Sudip
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Data Structure

1) The document describes different data structures including one dimensional arrays, two dimensional arrays, singly linked lists, and doubly linked lists. 2) It provides examples of how to access elements in each structure by using indexes or by traversing from one element to the next. 3) The key aspects covered are the structure of each type, how they store data and pointers/addresses, and how to navigate between elements.

Uploaded by

Sudip
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
You are on page 1/ 14

One dimentional array

int marks[10]

Index > 0 1 2 3 4 5
marks[0] marks[3]
Two dimentional array
int roll_marks[10][2]
Coll 0 Coll 1 int student[7000]
roll_marks [0][0] roll_marks [0][1] Row 0
roll_marks [1][0] roll_marks [1][1] Row 1
Row 2
5 610 roll_marks [3][0] > 5
10 720 roll_marks [4][0] = 10

roll_marks [9][0] roll_marks [9][1] Row 9


6 7 8 9
marks[9]

roll_marks [3][1] > 610


roll_marks [4][1] = 720
Singly Linked List -> one way linked list

element1 (address = AA) element2 (address = BB)


Head data nextPointer data nextPointer
(AA) 56 BB _____> 69 EE

Data Pointer / Address Data Pointer / Address


Link of next element Link of next element
data addr

Head = AA >>>> Head = element1


Head.data >>> 56
Head.nextPointer >>> BB

element1.nextElement() >>>> element2


element1.nextElement().data >>>> element2.data >>>> 69
element1.nextElement().nextPointer >>>> element2.nextPointer >>>> CC

element2.nextElement() >>>> element3


element2.nextElement().data >>>> element3.data >>>> 107
element2.nextElement().nextPointer >>>> element3.nextPointer >>>> DD
element3 (address = CC)
element2.pointer = pointeress of new_element >> element2.pointer = EE data nextPointer
_____ | -> 107 DD
| |
| | Data Pointer / Address
| | Link of next element
| |
| |
| |
| new_element (address = EE ) |
| data nextPointer |
| -> 45 CC _|

Data Pointer / Address


Link of next element

element3.nextElement() >>>> element4


er >>>> CC element3.nextElement().data >>>> element4.data >>>> 3
element3.nextElement().nextPointer >>>> element4.nextPointer >

er >>>> DD
element4 (address = DD)
data nextPointer Tail / last element
_____> 305 NULL

Data Pointer / Address


Link of next element

nt() >>>> element4


>>>> element4.data >>>> 305
>>>> element4.nextPointer >>>> NULL
Singly Linked List -> one way linked list

element1 (address = AA) element2 (address = BB)


Head data nextPointer data nextPointer
(AA) 56 BB _____> 69 EE

Data Pointer / Address Data Pointer / Address


Link of next element Link of next element
data addr

Head = AA >>>> Head = element1


Head.data >>> 56
Head.nextPointer >>> BB

element1.nextElement() >>>> element2


element1.nextElement().data >>>> element2.data >>>> 69
element1.nextElement().nextPointer >>>> element2.nextPointer >>>> CC

element2.nextElement() >>>> element3


element2.nextElement().data >>>> element3.data >>>> 107
element2.nextElement().nextPointer >>>> element3.nextPointer >>>> DD
element3 (address = CC)
element2.pointer = pointeress of new_element >> element2.pointer = EE data nextPointer
_____ | -> 107 DD
| |
| | Data Pointer / Address
| | Link of next element
| |
| |
| |
| new_element (address = EE ) |
| data nextPointer |
| -> 45 CC _|

Data Pointer / Address


Link of next element

element3.nextElement() >>>> element4


er >>>> CC element3.nextElement().data >>>> element4.data >>>> 3
element3.nextElement().nextPointer >>>> element4.nextPointer >

er >>>> DD
element4 (address = DD)
data nextPointer Tail / last element
_____> 305 AA

Data Pointer / Address


Link of next element

nt() >>>> element4


>>>> element4.data >>>> 305
>>>> element4.nextPointer >>>> NULL
Doubly Linked List -> both/two way linked list BUBUN

element1 (addrress = AA) element2 (address = BB)


Head prevPointer data nextPointer prevPointer data nextPointer
(AA) Addr of next <_____> Addr of prev Addr of next
NULL 56 69
element element element
NULL Data BB AA Data CC
EE
|
|
|
|
|
| ->

Head = AA >>>> Head = element1


Head.data >>> 56
Head.addr >>> BB

element1.nextElement() >>>> element2


element1.nextElement().data >>>> element2.data >>>> 69
element1.nextElement().addr >>>> element2.addr >>>> CC

element2.nextElement() >>>> element3


element2.nextElement().data >>>> element3.data >>>> 107
element2.nextElement().addr >>>> element3.addr >>>> DD
SUMI

element3 (address = CC)


prevPointer data nextPointer
<_____> _> Addr of prev Addr of next <_____>
107
| element element
| BB Data DD
| EE
|
|
|
new_element (address = EE ) |
prevPointer data nextPointer
Addr of next
Addr of prev element 45
element
BB CC

BUBUN SUDIP SUMI

element3.nextElement() >>>> element4


element3.nextElement().data >>>> element4.data >>>> 305
element3.nextElement().addr >>>> element4.addr >>>> NULL
element4 (address = DD)
prevPointer data nextPointer
Addr of prev
305 NULL
element
CC Data NULL
Doubly Linked List -> both/two way linked list BUBUN

element1 (addrress = AA) element2 (address = BB)


Head prevPointer data nextPointer prevPointer data nextPointer
(AA) Addr of prev Addr of next <_____> Addr of prev Addr of next
56 69
element element element element
DD Data BB AA Data CC
EE
DD |
|
|
|
HeAD = Eleemnt 2 |
| ->

Head = AA >>>> Head = element1


Head.data >>> 56
Head.addr >>> BB

element1.nextElement() >>>> element2


element1.nextElement().data >>>> element2.data >>>> 69
element1.nextElement().addr >>>> element2.addr >>>> CC

element2.nextElement() >>>> element3


element2.nextElement().data >>>> element3.data >>>> 107
element2.nextElement().addr >>>> element3.addr >>>> DD
SUMI

element3 (address = CC)


prevPointer data nextPointer
<_____> _> Addr of prev Addr of next <_____>
107
| element element
| BB Data DD
| EE
|
|
|
new_element (address = EE ) |
prevPointer data nextPointer
Addr of next
Addr of prev element 45
element
BB CC

BUBUN SUDIP SUMI

element3.nextElement() >>>> element4


element3.nextElement().data >>>> element4.data >>>> 305
element3.nextElement().addr >>>> element4.addr >>>> NULL
element4 (address = DD)
prevPointer data nextPointer
Addr of prev Addr of next
305
element element
CC Data AA

You might also like