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

Slides:



Advertisements
Similar presentations
8 October 2013Birkbeck College, U. London1 Introduction to Computer Systems Department of Computer Science and Information Systems Autumn 2013 Preliminary.
Advertisements

22 October 2013Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
Introduction to Computer Systems
1 March 2013Birkbeck College, U. London1 Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems
8 October 2013Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
8 March 2013Birkbeck College, U. London1 Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems
15 October 2013Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
Introduction to Programming
29 October 2013Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
Data structure is concerned with the various ways that data files can be organized and assembled. The structures of data files will strongly influence.
CpSc 3220 File and Database Processing Lecture 17 Indexed Files.
Introduction to Computer Systems
Chapter 4 : File Systems What is a file system?
Universidad Nacional de Colombia Facultad de Ingeniería Departamento de Sistemas nalysis of lgorithms.
SKIPLISTS A Probabilistic Alternative to Balanced Trees.
Arrays. Memory organization Table at right shows 16 bytes, each consisting of 8 bits Each byte has an address, shown in the column to the left
Connecting with Computer Science, 2e
DISK STORAGE INDEX STRUCTURES FOR FILES Lecture 12.
Self Referential Structure. A structure may not contain a member of its own type. struct check { int item; struct check n; // Invalid };
Introduction to Computer Systems
Review C++ exception handling mechanism Try-throw-catch block How does it work What is exception specification? What if a exception is not caught?
Chapter 8 Data Abstractions. 2 Chapter 8: Data Abstractions 8.1 Data Structure Fundamentals 8.2 Implementing Data Structures 8.3 A Short Case Study 8.4.
1 Data Abstractions Shyh-Kang Jeng Department of Electrical Engineering/ Graduate Institute of Communication Engineering National Taiwan University.
Chapter 8 Data Abstractions Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Connecting with Computer Science 2 Objectives Learn what a data structure is and how it is used Learn about single and multidimensional arrays and how.
25 November 2014Birkbeck College1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems
Chapter 8: Data Abstractions Senem Kumova Metin. 8-2 Chapter 8: Data Abstractions 8.1 Basic Data Structures – Arrays – Lists, Stacks, Queues – Trees 8.2.
Connecting with Computer Science, 2e Chapter 8 Data Structures.
Chapter 2 ARRAYS.
Lecture Contents Arrays and Vectors: Concepts of array. Memory index of array. Defining and Initializing an array. Processing an array. Parsing an array.
6 October 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
6 October 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
Overview of Course Java Review 1. This Course Covers, using Java Abstract data types Design, what you want them to do (OOD) Techniques, used in implementation.
Chapter 8 Data Abstractions. © 2005 Pearson Addison-Wesley. All rights reserved 8-2 Chapter 8: Data Abstractions 8.1 Data Structure Fundamentals 8.2 Implementing.
Data Structures and Algorithms Lecture 1 Instructor: Quratulain Date: 1 st Sep, 2009.
ECE 250 Algorithms and Data Structures Douglas Wilhelm Harder, M.Math. LEL Department of Electrical and Computer Engineering University of Waterloo Waterloo,
Data Structures Types of Data Structure Data Structure Operations Examples Choosing Data Structures Data Structures in Alice.
The List ADT A sequence of zero or more elements A 1, A 2, A 3, … A N-1 N: length of the list A 1 : first element A N-1 : last element A i : position i.
29 September 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
3 Data. Software And Data Data Data element – a single, meaningful unit of data. Name Social Security Number Data structure – a set of related data elements.
Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems
17 November 2015Birkbeck College1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems
10 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
Review 1 Polish Notation Prefix Infix Postfix Precedence of Operators Converting Infix to Postfix Evaluating Postfix.
20 October 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
13 October 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
3 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
1st December 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
Department of Computer Science 1 Some Practice Let’s practice for the final a little bit. OK?
Circular linked list A circular linked list is a linear linked list accept that last element points to the first element.
24 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
Linked list: a list of items (nodes), in which the order of the nodes is determined by the address, called the link, stored in each node C++ Programming:
Data Structure & Algorithms
27 October 2015 Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
UNIT-V ABSTRACT DATA TYPE 1.LIST 2.STACK 3.QUEUE EC6301-II-ECE-C.
Introduction to Computer Systems
Indexing Goals: Store large files Support multiple search keys
UNIT – I Linked Lists.
Chapter 8: Data Abstractions
Chapter 11: File System Implementation
Disk storage Index structures for files
Chapter 8: Data Abstractions
Introduction To Programming Information Technology , 1’st Semester
CS148 Introduction to Programming II
CS148 Introduction to Programming II
Presentation transcript:

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

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

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

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

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

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.

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

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 …

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.

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 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.

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

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

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

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

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

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

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

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