Presentation is loading. Please wait.

Presentation is loading. Please wait.

11 November 2014Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Similar presentations


Presentation on theme: "11 November 2014Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems."— Presentation transcript:

1 11 November 2014Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems Autumn 2014 Week 7b: Pointers and Linked Lists

2 Review: Arrays An array is a block of values of the same type. Eg. A 2D array of size 10x November 2014Birkbeck College, U. London2

3 Review: Array Indexing There is a standard way of referring to the entries in an array. Eg. In Java: A[0], A[9], B[12,1]. In 2D arrays, the order of the indices is row then column. 11 November 2014Birkbeck College, U. London3

4 Three Dimensional Arrays If C is a 3D array of size 10x10x10, if each entry occupies one memory cell and if C[0,0,0] is stored at x, then C[i, j, k] is stored at x+100*i+10*j+k Thus C[2,5,1] is stored at x+100*2+10*5+1 = x November 2014Birkbeck College, U. London4

5 11 November 2014Brookshear, Sections 8.2 and 8.75 Pointers  A pointer is a storage area containing the address at which a piece of information is stored.  Example: the program counter in the CPU The programme counter points to memory cell 207 which contains the value 60. programme counter

6 11 November 2014Brookshear, Section 8.26 Why are Pointers Useful? Each pointer contains a relatively small number of bits. It is easier to move or copy pointers rather than move or copy the data they point to.

7 11 November 2014Birkbeck College, U. London7 Example: Sorting AZM AZM Array of pointers Data in memory Data in memory Sorted array of pointers

8 11 November 2014Brookshear, Section 8.28 Example: Alternative List … A Farewell to Arms Hemingway Pointer … For Whom the Bell Tolls Hemingway Pointer … The Sun Also Rises Hemingway Pointer …

9 11 November 2014Brookshear, Sections 8.1 and 8.39 Lists A list is a collection of data whose entries are arranged sequentially. Example of a list with 4 entries: addressphotodatetel. The entries vary widely in size.

10 11 November 2014Brookshear, Section Contiguous Storage of a List List entries are stored consecutively in memory Advantage: simple Disadvantage: insertion and deletion are difficult.

11 11 November 2014Brookshear, Section Linked Lists  Each list entry contains a pointer to the next entry  List entries can be stored in any part of memory.  There is a special head pointer for the first entry and a Nil pointer in the last entry.

12 11 November 2014Brookshear, Section Example of a Linked List photo86address7date87telNil Head

13 11 November 2014Brookshear, Section Deletion  Find the preceding list item f1 and the following list item f2. Set f1.pointer=f2 datapointer datapointer datapointer f1 f2 deleted entry new pointer old pointer

14 11 November 2014Brookshear, Section Insertion  to insert after a list item f1 set newEntry.pointer = f1.pointer f1.pointer = location of newEntry datapointer datapointer datapointer new pointer old pointer f1 newEntrynew pointer

15 11 November 2014Birkbeck College, U. London15 Pseudocode for Pointers Assign the value 4 to x: f1.x = 4 Point to the next item: f1.next = f2 pointer f1 variable xpointer next

16 11 November 2014Birkbeck College, U. London16 Printing a Linked List f = head(L); While (f<>nil) print(f.data); f = f.next; EndWhile

17 Example of a Tree 11 November 2014Birkbeck College, U. London17 S N VP V NP John hit DN the ball S: sentence NP: noun phrase VP: verb phrase N: noun V: verb D: determiner Colour: data Tree: hidden structure

18 Binary Tree Each node has the form 11 November 2014Brookshear, Sections 8.3, dataleft pointerright pointer A B C D

19 Binary Tree Stored in Memory A3339B36nilC D 11 November 2014Birkbeck College, U. London


Download ppt "11 November 2014Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems."

Similar presentations


Ads by Google