Arrays and other data structures
Download
1 / 35

Arrays and Other Data Structures - PowerPoint PPT Presentation


  • 194 Views
  • Updated On :

Arrays and Other Data Structures. Introduction to Arrays Bounds and Subscripts Integer Arrays Floating Point Number Arrays Lists (Linked) Stacks. Introduction to Arrays.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Arrays and Other Data Structures' - Sophia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Arrays and other data structures l.jpg
Arrays and Other Data Structures

  • Introduction to Arrays

  • Bounds and Subscripts

  • Integer Arrays

  • Floating Point Number Arrays

  • Lists (Linked)

  • Stacks


Introduction to arrays l.jpg
Introduction to Arrays

  • An array is a contiguous block of the same data type. For example, you could have an array of integers (a block of integers), but not a block of integers and floats.

  • An integer array

    • int agesOfKids[n];

    • Where n is the size of the block indicating the number of integers in this array


Bounds and subscripts l.jpg
Bounds and Subscripts

  • Array Bounds

    • "Array bounds" refer to the boundaries in memory which the array occupies. The beginning of the array (the first) element is considered the lower bound, while the end (or top) is considered to be the upper bound.

  • Element

    • An "element" is an individual entity inside the array. Because C arrays have a lower bound of 0, array[0] refers to the first element.

  • Array Subscript

    • The expression inside the [ ... ] is known as an array subscript.


Slide4 l.jpg

EXAMPLE -- To keep monthly high temperatures for all 50 states in one array.

int stateHighs [ 50 ] [12 ] ;

[ 0 ]

[ 1 ]

[ 2 ]

.

. stateHighs [2] [7]

.

[ 48 ]

[ 49 ]

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

66 64 72 78 85 90 99 105 98 90 88 80

row 2,

col 7

might be

Arizona’s

high for

August


Const int num states 50 const int num months 12 int statehighs num states num months l.jpg

rows columns

STORAGE

8000

8024

8048

12 highs for state 0 12 highs for state 1 etc.

Alabama Alaska

first row second row

const int NUM_STATES = 50 ;const int NUM_MONTHS = 12 ;int stateHighs [ NUM_STATES ] [ NUM_MONTHS ] ;

  • In memory, arrays are stored in row order. The first row is followed by the second row, etc.

Base Address

. . .


Integer arrays l.jpg
Integer Arrays

  • We wish to store the 4-digit pager numbers for all 50 apartments in an apartment complex

  • int[] pager_numbers = new int[51];

  • Location zero is reserved for the building manager

  • pager_number[0] = 2435;


Integer arrays7 l.jpg
Integer Arrays

  • Suppose that we wish to print all pager numbers from apartment#1 to apartment#50 in a nicely formatted list

  • The best way to do this would be to use the for loop


The for statement l.jpg
The for Statement

  • “for” is a loop statement that is controlled through a loop control variable

  • for (lcv=1; lcv<=100; lcv++)

  • The above loop will start with lcv=1 and it will run until lcv equals 100. The step size is 1 (lcv++)


Pager numbers printout in java l.jpg
Pager Numbers Printout in Java

  • int[] pagers = new int[50];

  • int loop;

  • for (loop=1; loop<=50; loop++)

  • System.out.println(pagers[loop]);


Lists l.jpg
Lists

  • Introduction to Lists

  • Contiguous Lists

  • Adding and Deleting in Contiguous Lists

  • Linked Lists

  • Pointers in Linked Lists

  • Inserting into a Linked List

  • Deleting from a Linked List


Introduction to lists l.jpg
Introduction to Lists

  • An organization’s membership list may grow and shrink in size.

  • Your phone book may also grow and shrink in size as time passes

  • We need a mechanism to store dynamic lists in the memory


Linked lists l.jpg
Linked Lists

  • Linked lists have entries connected with pointers

  • Deleting an entry can be implemented by re-arranging pointers

  • So we leave the entries where they are and just re-align the pointers


Pointers l.jpg
Pointers

  • Think about the pointers in your life

My mailing address

My Home



Pointers15 l.jpg
Pointers

  • Web links are also pointers

UCLA Server Computer

http://www.ucla.edu


Inserting into a linked list l.jpg
Inserting into a Linked List

Header

NEXT

Bob

242-7111

NEXT

Fred

423-3158

New Entry


Inserting into a linked list17 l.jpg
Inserting into a Linked List

Header

NEXT

Bob

242-7111

NEXT

Fred

423-3158

New Entry


Inserting into a linked list18 l.jpg
Inserting into a Linked List

NEXT

NEXT

Bob

242-7111

Fred

423-3158

Header


Deleting from a linked list l.jpg
Deleting from a Linked List

NEXT

NEXT

NEXT

Alice

242-7111

Bob

423-3178

Fred

423-3158

Header


Deleting from a linked list20 l.jpg
Deleting from a Linked List

NEXT

Bob

423-3178

NEXT

NEXT

Alice

242-7111

Fred

423-3158

Header


Stacks l.jpg
Stacks

  • Stacks

  • Stack Base and Stack Pointer

  • Push operation

  • Pop operation


Stacks22 l.jpg
Stacks

  • A stack is a useful data structure that stores values that may be needed in the near future

  • For example, you may want to return back to a website that you browsed a few moments ago

  • You may want to undo an operation that you performed in MS-Word

  • In a stack, we have a fixed size block of memory available in which we can only add and delete at one end

  • We keep track of both ends of stack with pointers


Stack operation l.jpg
Stack Operation

Other Memory

Designated Block for Stack


Stack operation24 l.jpg
Stack Operation

EMPTY STACK

SP

SB


Stack operation25 l.jpg
Stack Operation

STACK WITH ONE DATA ITEM

SP

SB

Val1


Push operation l.jpg
Push Operation

  • We store a data item at the location referenced by SP

SP

SB

Val1


Push operation27 l.jpg
Push Operation

  • We store a data item at the location referenced by SP and then increment SP

SP

Val2

SB

Val1


Push operation28 l.jpg
Push Operation

  • Stack[SP] = New Value

  • SP= SP+1;

  • The stack has a fixed maximum size of N locations. We cannot bump into other memory

  • Therefore, we must check before pushing if the stack is full

  • How?


Push operation29 l.jpg
Push Operation

  • if (SP == SB+N)

  • cout “sorry!! Stack is full”;

  • else

  • {

  • Stack[SP] = New_Value

  • SP= SP+1;

  • }


Pop operation l.jpg
Pop Operation

  • We retrieve a data item from the top of stack. How can we reach top of stack value?

SP

Val3

Val2

SB

Val1


Pop operation31 l.jpg
Pop Operation

  • Val3 is top of stack and it is one below the current location referenced by SP

SP

Val3

Val2

SB

Val1


Pop operation32 l.jpg
Pop Operation

  • Val3 is popped out and SP is decremented to point to newly vacated location

SP

Val2

SB

Val1


Pop operation33 l.jpg
Pop Operation

  • Popped_Value = Stack[SP-1];

  • SP= SP-1;

  • We cannot pop from an empty stack so we must check before popping

  • How?


Pop operation34 l.jpg
Pop Operation

  • if (SP == SB)

  • cout “sorry!! Stack is empty”;

  • else

  • {

  • Popped_Value = Stack[SP-1];

  • SP= SP-1;

  • }


Stack applications l.jpg
Stack Applications

  • Stacks are very useful in remembering values

  • Stacks operate similar to the way the office clerks process letters and folders

  • The current document is on top of stack and it has to be processed first

  • Stacks help programs remember the place where call to a procedure was issued


ad