Linked Lists. References and objects

Size: px
Start display at page:

Download "Linked Lists. References and objects"

Transcription

1 Linked Lists slides created by Marty Stepp Modified by Sarah Heckman Reading: RS Chapter 16 References and objects In Java, objects and arrays use reference semantics. Why? efficiency. Copying large objects slows down a program. sharing. It's useful to share an object's data among methods. DrawingPanel panel1 = new DrawingPanel(0, 50); DrawingPanel panel2 = panel1; // same window panel2.setbackground(color.cyan); panel1 panel2 2 1

2 References as fields Objects can store references to other objects as fields. HtmlValidator stores a reference to a Queue the Queue stores many references to HtmlTag objects each HtmlTag object stores a reference to its element String HtmlValidator private Queue<HtmlTag> queue; HtmlTag Queue private String element; front HtmlTag back private String element; String h t m l String b o d y 3 References to same type What would happen if we had a class that declared one of its own type as a field? public class Strange { private String name; private Strange other; Will this compile? If so, what is the behavior of the other field? What can it do? If not, why not? What is the error and the reasoning behind it? 4 2

3 Linked data structures All of the collections we will use and implement in this course use one of the following two underlying data structures: an array of all elements ArrayList, Stack, HashSet, HashMap a set of linked objects, each storing one element, and one or more reference(s) to other element(s) LinkedList, TreeSet, TreeMap front null 5 A node class public class ListNode { int data; ListNode next; Each node object stores: one piece of integer data a reference to another node ListNodes can be "linked" into chains to store a of values: null 6 3

4 List node client example public class ConstructList1 { public static void main(string[] args) { ListNode = new ListNode();.data = 42;.next = new ListNode();.next.data = -3;.next.next = new ListNode();.next.next.data = 17;.next.next.next = null; System.out.println(.data + " " +.next.data + " " +.next.next.data); // null 7 List node w/ constructor public class ListNode { int data; ListNode next; public ListNode(int data) { this(data, null); public ListNode(int data, ListNode next) { this.data = data; this.next = next; 4

5 References vs. objects variable = value; a variable (left side of = ) is an arrow (the base of an arrow) a value (right side of = ) is an object (a box; what an arrow points at) For the at right: a.next = value; means to adjust where 1 a points 1 2 variable = a.next; means to make variable point at 2 9 Reassigning references when you say: a.next = b.next; you are saying: "Make the variable a.next refer to the same value as b.next." Or, "Make a.next point to the same place that b.next points." a b

6 Linked Node Question Before temp After Linked node question Suppose we have a long chain of nodes: 990 We don't know exactly how long the chain is. How would we print the data values in all the nodes? 12 6

7 Algorithm pseudocode Start at the front of the. While (there are more nodes to print): Print the current node's data. Go to the next node. How do we walk through the nodes of the? =.next; // is this a good idea? Traversing a? One (bad) way to print every value in the : while (!= null) { System.out.println(.data); =.next; // move to next node What's wrong with this approach?

8 A current reference Don't change. Make another variable, and change that. A ListNode variable is NOT a ListNode object ListNode current = ; 990 current What happens to the picture above when we write: current = current.next; 15 Traversing a correctly The correct way to print every value in the : ListNode current = ; while (current!= null) { System.out.println(current.data); current = current.next; // move to next node Changing current does not damage the

9 Linked vs. array Algorithm to print values: Similar to array code: ListNode ; int[] a = ; ListNode current = front; while (current!= null) { System.out.println(current.data); current = current.next; int i = 0; while (i < size) { System.out.println(a[i]); i++; 17 A LinkedIntList class Let's write a collection class named LinkedIntList. Has the same methods as ArrayIntList: add, add, get, indexof, remove, size, tostring The is internally implemented as a chain of linked nodes The LinkedIntList keeps a reference to its front as a field null is the end of the ; a null front signifies an empty LinkedIntList front size add(value) add(index, value) indexof(value) remove(index) size() tostring() ListNode ListNode ListNode

10 LinkedIntList class v1 public class LinkedIntList { private ListNode front; private int size; public LinkedIntList() { null; size = 0; LinkedIntList size = 0 methods go here 19 Conceptual questions What is the difference between a LinkedIntList and a ListNode? What is the difference between an empty and a null? How do you create each one? Why are the fields of ListNode public? Is this bad style? What effect does this code have on a LinkedIntList? ListNode current = front; current = null;

11 Exercise Write pseudocode for addsorted that accepts an integer value as a parameter and adds that value to a sorted in sorted order. Before addsorted(17) : size = 3 After addsorted(17) : size = 4 17 element 3 The common case Adding to the middle of a : addsorted(17) Which references must be changed? What sort of loop do we need? When should the loop stop? 23 11

12 First attempt An incorrect loop: ListNode current = front; while (current.data < value) { current = current.next; current What is wrong with this code? The loop stops too late to affect the in the right way. 24 Key idea: peeking ahead Corrected version of the loop: ListNode current = front; while (current.next.data < value) { current = current.next; current This time the loop stops in the right place

13 Another case to handle Adding to the end of a : addsorted(42) Exception in thread "main": java.lang.nullpointerexception Why does our code crash? What can we change to fix this case? 26 Multiple loop tests A correction to our loop: ListNode current = front; while (current.next!= null && current.next.data < value) { current = current.next; current We must check for a next of null before we check its.data

14 Third case to handle Adding to the front of a : addsorted(-) What will our code do in this case? What can we change to fix it? 2 Handling the front Another correction to our code: if (value <= front.data) { // insert at front of new ListNode(value, front); else { // insert in middle of ListNode current = front; while (current.next!= null && current.next.data < value) { current = current.next; Does our code now handle every possible case? 29 14

15 Fourth case to handle Adding to (the front of) an empty : addsorted(42) What will our code do in this case? What can we change to fix it? 30 Final version of code // Adds given value to in sorted order. // Precondition: Existing elements are sorted public void addsorted(int value) { if (= null value <= front.data) { // insert at front of new ListNode(value, front); else { // insert in middle of ListNode current = front; while (current.next!= null && current.next.data < value) { current = current.next; 31 15

CSE 143. Lecture 7: Linked List Basics reading: 16.2

CSE 143. Lecture 7: Linked List Basics reading: 16.2 CSE 143 Lecture 7: Linked List Basics reading: 16.2 References vs. objects variable = value; a variable (left side of = ) is an arrow (the base of an arrow) a value (right side of = ) is an object (a box;

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 16 References and linked nodes reading: 16.1 2 Recall: stacks and queues stack: retrieves elements in reverse order as added queue: retrieves elements in same order as added

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 16 References and linked nodes reading: 16.1 2 Value semantics value semantics: Behavior where values are copied when assigned, passed as parameters, or returned. All primitive

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 16 Lecture 16-3: Complex Linked List Code; Iterators and for each loops reading: 16.2 16.3, 7.1, 11.1 addsorted! Write a method addsorted that accepts an int as a parameter

More information

CSE 143X. Accelerated Computer Programming I/II

CSE 143X. Accelerated Computer Programming I/II Adam Blank Lecture 12a Autumn 2015 CSE 143X Accelerated Computer Programming I/II CSE 143X: Accelerated Computer Programming I/II Linked Lists I Outline 1 Learn how LinkedIntList is implemented 2 Learn

More information

Today s Goals 2. Get familiar with the idea of references (things that point to objects) So far, the only real data structure we ve seen is arrays

Today s Goals 2. Get familiar with the idea of references (things that point to objects) So far, the only real data structure we ve seen is arrays Adam Blank Lecture a Autumn CSE X: Accelerated Computer Programming I/II CSE X List Nodes Accelerated Computer Programming I/II More Than Arrays Today s Goals Get familiar with the idea of references (things

More information

CSE 143 Lecture 26. Advanced collection classes. (ADTs; abstract classes; inner classes; generics; iterators) read 11.1, 9.6, ,

CSE 143 Lecture 26. Advanced collection classes. (ADTs; abstract classes; inner classes; generics; iterators) read 11.1, 9.6, , CSE 143 Lecture 26 Advanced collection classes (ADTs; abstract classes; inner classes; generics; iterators) read 11.1, 9.6, 15.3-15.4, 16.4-16.5 slides created by Marty Stepp, adapted by Alyssa Harding

More information

Building Java Programs

Building Java Programs Building Java Programs Inner classes, generics, abstract classes reading: 9.6, 15.4, 16.4-16.5 2 A tree set Our SearchTree class is essentially a set. operations: add, remove, contains, size, isempty similar

More information

Programming 2. Topic 8: Linked Lists, Basic Searching and Sorting

Programming 2. Topic 8: Linked Lists, Basic Searching and Sorting RMIT School of Computer Science and Information Technology Programming 2 Topic 8: Linked Lists, Basic Searching and Sorting Lecture Slides COPYRIGHT 2008 RMIT University. Original content by: Peter Tilmanis,

More information

CSE143 Midterm Summer Name of Student: Section (e.g., AA): Student Number:

CSE143 Midterm Summer Name of Student: Section (e.g., AA): Student Number: CSE143 Midterm Summer 2017 Name of Student: Section (e.g., AA): Student Number: The exam is divided into six questions with the following points: # Problem Area Points Score ---------------------------------------------

More information

CSE 143 Lecture 4. Implementing ArrayIntList; Binary Search. reading:

CSE 143 Lecture 4. Implementing ArrayIntList; Binary Search. reading: CSE 143 Lecture 4 Implementing ArrayIntList; Binary Search reading: 15.1-15.3 slides adapted from Marty Stepp and Hélène Martin http://www.cs.washington.edu/143/ Exercise Let's write a class that implements

More information

Linked Lists. Chapter 12.3 in Savitch

Linked Lists. Chapter 12.3 in Savitch Linked Lists Chapter 12.3 in Savitch Preliminaries n Arrays are not always the optimal data structure: q An array has fixed size needs to be copied to expand its capacity q Adding in the middle of an array

More information

Facebook. / \ / \ / \ Accenture Nintendo

Facebook. / \ / \ / \ Accenture Nintendo 1. Binary Tree Traversal Consider the following tree: +---+ 4 +---+ 1 9 / / +---+ 6 0 2 +---+ 3 8 \ \ \ \ 7 5 Fill in each of the traversals below : Pre-order: 4 1 6 3 7 0 8 5 9 2 In-order: 3 7 6 1 0 8

More information

CSE 143 SAMPLE MIDTERM

CSE 143 SAMPLE MIDTERM CSE 143 SAMPLE MIDTERM 1. (5 points) In some methods, you wrote code to check if a certain precondition was held. If the precondition did not hold, then you threw an exception. This leads to robust code

More information

CSE 143 SAMPLE MIDTERM SOLUTION

CSE 143 SAMPLE MIDTERM SOLUTION CSE 143 SAMPLE MIDTERM SOLUTION 1. (5 points) In some methods, you wrote code to check if a certain precondition was held. If the precondition did not hold, then you threw an exception. This leads to robust

More information

CSE 143 Lecture 2. reading:

CSE 143 Lecture 2. reading: CSE 143 Lecture 2 Implementing ArrayIntList reading: 15.1-15.3 slides adapted from Marty Stepp, Hélène Martin, Ethan Apter and Benson Limketkai http://www.cs.washington.edu/143/ Exercise Pretend for a

More information

CSE 143 Lecture 4. Preconditions

CSE 143 Lecture 4. Preconditions CSE 143 Lecture 4 Exceptions and ArrayList slides created by Marty Stepp http://www.cs.washington.edu/143/ Preconditions precondition: Something your method assumes is true at the start of its execution.

More information

1. (9 points) Recall the definition of the ListNode class: public class ListNode { int data; ListNode next; }

1. (9 points) Recall the definition of the ListNode class: public class ListNode { int data; ListNode next; } CSE 143 SUMMER 2010 MIDTERM SOLUTION 1. (9 points) Recall the definition of the ListNode class: public class ListNode { int data; ListNode next; Below are pictures of linked nodes before and after some

More information

Array Based Lists. Collections

Array Based Lists. Collections Array Based Lists Reading: RS Chapter 15 1 Collections Data structures stores elements in a manner that makes it easy for a client to work with the elements Specific collections are specialized for particular

More information

CSE 143 Sample Midterm Exam #4

CSE 143 Sample Midterm Exam #4 CSE 143 Sample Midterm Exam #4 (based on Summer 2009's midterm; thanks to Alyssa Harding) 1. ArrayList Mystery. Consider the following method: public static void mystery4(arraylist list) { for

More information

CSE 373. Java Collection Framework. reading: Weiss Ch. 3, 4.8. slides created by Marty Stepp

CSE 373. Java Collection Framework. reading: Weiss Ch. 3, 4.8. slides created by Marty Stepp CSE 373 Java Collection Framework reading: Weiss Ch. 3, 4.8 slides created by Marty Stepp http://www.cs.washington.edu/373/ 1 Arrays array: An object that stores many values of the same type. element:

More information

CSE 143 Lecture 4. ArrayList. Reading: slides created by Marty Stepp

CSE 143 Lecture 4. ArrayList. Reading: slides created by Marty Stepp CSE 143 Lecture 4 ArrayList Reading: 10.1 slides created by Marty Stepp http://www.cs.washington.edu/143/ Handling errors Currently our ArrayIntList class allows the user to do some bad things, like adding/getting

More information

Building Java Programs. Interfaces and Comparable reading: , 10.2, 16.4

Building Java Programs. Interfaces and Comparable reading: , 10.2, 16.4 Building Java Programs Interfaces and Comparable reading: 9.5-9.6, 10.2, 16.4 2 Shapes Consider the task of writing classes to represent 2D shapes such as Circle, Rectangle, and Triangle. Certain operations

More information

CSE 143 Lecture 20. Circle

CSE 143 Lecture 20. Circle CSE 143 Lecture 20 Abstract classes Circle public class Circle { private double radius; public Circle(double radius) { this.radius = radius; public double area() { return Math.PI * radius * radius; public

More information

CSE 143, Winter 2009 Sample Midterm Exam #2

CSE 143, Winter 2009 Sample Midterm Exam #2 CSE 143, Winter 2009 Sample Midterm Exam #2 1. Stacks and Queues. Write a method interleave that accepts a queue of integers as a parameter and rearranges the elements by alternating the elements from

More information

Intro to Programming II

Intro to Programming II 18-2: Arrays Intro to Programming II Linked Lists Chris Brooks Department of Computer Science University of San Francisco Previously we talked about using arrays to store sequences of data. Advantages:

More information

final int a = 10; for(int i=0;i<a;i+=2) { for(int j=i;j<a;j++) { System.out.print("*"); } System.out.println(); }

final int a = 10; for(int i=0;i<a;i+=2) { for(int j=i;j<a;j++) { System.out.print(*); } System.out.println(); } CSCE 146 Exam 1 Review Part 1 Java Review This part went over the basics of Java, and the focus was mostly on arrays. There will be no questions that involve reading from and writing to files. Short Answer

More information

Linked Lists. private int num; // payload for the node private Node next; // pointer to the next node in the list }

Linked Lists. private int num; // payload for the node private Node next; // pointer to the next node in the list } Linked Lists Since a variable referencing an object just holds the address of the object in memory, we can link multiple objects together to form dynamic lists or other structures. In our case we will

More information

CSE 143 Lecture 14. Interfaces; Abstract Data Types (ADTs) reading: 9.5, 11.1; 16.4

CSE 143 Lecture 14. Interfaces; Abstract Data Types (ADTs) reading: 9.5, 11.1; 16.4 CSE 143 Lecture 14 Interfaces; Abstract Data Types (ADTs) reading: 9.5, 11.1; 16.4 slides adapted from Marty Stepp and Hélène Martin http://www.cs.washington.edu/143/ Related classes Consider classes for

More information

CSE 143 Section Handout #13 Practice Midterm #5

CSE 143 Section Handout #13 Practice Midterm #5 Practice Midterm #5 1. ArrayList Mystery. Consider the following method: public static void mystery5(arraylist list) { for (int i = 0; i < list.size(); i++) { int element = list.get(i); list.remove(i);

More information

Using arrays to store data

Using arrays to store data ArrayLists Using arrays to store data Arrays: store multiple values of the same type. Conveniently refer to items by their index Need to know the size before declaring them: int[] numbers = new int[100];

More information

1. Binary Tree Traversal. 2. Binary Search Tree. 1 of 12. Consider the following tree: Pre-order: In-order: Post-order:

1. Binary Tree Traversal. 2. Binary Search Tree. 1 of 12. Consider the following tree: Pre-order: In-order: Post-order: 1. Binary Tree Traversal Consider the following tree: +---+ 4 +---+ 1 9 / / +---+ 6 0 2 +---+ 3 8 \ \ \ \ 7 5 Fill in each of the traversals below : Pre-order: In-order: Post-order: 2. Binary Search Tree

More information

COMPUTER SCIENCE DEPARTMENT PICNIC. Operations. Push the power button and hold. Once the light begins blinking, enter the room code

COMPUTER SCIENCE DEPARTMENT PICNIC. Operations. Push the power button and hold. Once the light begins blinking, enter the room code COMPUTER SCIENCE DEPARTMENT PICNIC Welcome to the 2016-2017 Academic year! Meet your faculty, department staff, and fellow students in a social setting. Food and drink will be provided. When: Saturday,

More information

CSC 1351: Final. The code compiles, but when it runs it throws a ArrayIndexOutOfBoundsException

CSC 1351: Final. The code compiles, but when it runs it throws a ArrayIndexOutOfBoundsException VERSION A CSC 1351: Final Name: 1 Interfaces, Classes and Inheritance 2 Basic Data Types (arrays, lists, stacks, queues, trees,...) 2.1 Does the following code compile? If it does not, how can it be fixed?

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 10 ArrayList reading: 10.1 Welcome to CSE 143! 2 Words exercise Write code to read a file and display its words in reverse order. A solution that uses an array: String[]

More information

EXAMINATIONS 2011 Trimester 2, MID-TERM TEST. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS

EXAMINATIONS 2011 Trimester 2, MID-TERM TEST. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2011 Trimester 2, MID-TERM TEST COMP103 Introduction

More information

Announcements. Container structures so far. IntSet ADT interface. Sets. Today s topic: Hashing (Ch. 10) Next topic: Graphs. Break around 11:45am

Announcements. Container structures so far. IntSet ADT interface. Sets. Today s topic: Hashing (Ch. 10) Next topic: Graphs. Break around 11:45am Announcements Today s topic: Hashing (Ch. 10) Next topic: Graphs Break around 11:45am Container structures so far Array lists O(1) access O(n) insertion/deletion (average case), better at end Linked lists

More information

CS61BL Summer 2013 Midterm 2

CS61BL Summer 2013 Midterm 2 CS61BL Summer 2013 Midterm 2 Sample Solutions + Common Mistakes Question 0: Each of the following cost you.5 on this problem: you earned some credit on a problem and did not put your five digit on the

More information

Implementation. Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations

Implementation. Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations Readings List Implementations Chapter 20.2 Objectives Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations Additional references:

More information

CS231 - Spring 2017 Linked Lists. ArrayList is an implementation of List based on arrays. LinkedList is an implementation of List based on nodes.

CS231 - Spring 2017 Linked Lists. ArrayList is an implementation of List based on arrays. LinkedList is an implementation of List based on nodes. CS231 - Spring 2017 Linked Lists List o Data structure which stores a fixed-size sequential collection of elements of the same type. o We've already seen two ways that you can store data in lists in Java.

More information

+ Abstract Data Types

+ Abstract Data Types Linked Lists Abstract Data Types An Abstract Data Type (ADT) is: a set of values a set of operations Sounds familiar, right? I gave a similar definition for a data structure. Abstract Data Types Abstract

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 15 Lecture 15-1: Implementing ArrayIntList reading: 15.1-15.3 Recall: classes and objects class: A program entity that represents: A complete program or module, or A template

More information

CSE 143 Sample Midterm Exam #1

CSE 143 Sample Midterm Exam #1 CSE 143 Sample Midterm Exam #1 1. ArrayList Mystery. Consider the following method: public static void mystery1(arraylist list) { for (int i = 0; i < list.size(); i += 2) { int element = list.get(i);

More information

Announcements. Today s topic: Hashing (Ch. 10) Next topic: Graphs. Break around 11:45am

Announcements. Today s topic: Hashing (Ch. 10) Next topic: Graphs. Break around 11:45am Announcements Today s topic: Hashing (Ch. 10) Next topic: Graphs Break around 11:45am 1 Container structures so far Array lists O(1) access O(n) insertion/deletion (average case), better at end Linked

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 13 binary search and complexity reading: 13.1-13.2 2 Wednesday Questions Are ListNodes used? Yes! In Java s LinkedList What does the Stack tostring represent? bottom [1,

More information

Lecture 9. Pointer, linked node, linked list TDDD86: DALP. Content. Contents Pointer and linked node. 1.1 Introduction. 1.

Lecture 9. Pointer, linked node, linked list TDDD86: DALP. Content. Contents Pointer and linked node. 1.1 Introduction. 1. Lecture 9 Pointer, linked node, linked list TDDD86: DALP Utskriftsversion av Lecture in Data Structures, Algorithms and Programming Paradigms 22nd September 2017 Ahmed Rezine, IDA, Linköping University

More information

What does this print?

What does this print? public class Test { int data; public Test(int x ) { data=x; } public void assign(test b, Test c, int d) { data= 2; b= new Test(2); c.data= 2; d=2; } public static void main(string [] args) { Test a, b,

More information

CSE 143, Winter 2010 Midterm Exam Key

CSE 143, Winter 2010 Midterm Exam Key 1. ArrayList Mystery CSE 143, Winter 2010 Midterm Exam Key List (a) [10, 20, 10, 5] (b) [8, 2, 9, 7, -1, 55] (c) [0, 16, 9, 1, 64, 25, 25, 14, 0] Output [0, 10, 20, 10] [0, 0, 8, 9, -1, 55] [0, 0, 0, 0,

More information

A Linked Structure. Chapter 17

A Linked Structure. Chapter 17 Chapter 17 A Linked Structure This chapter demonstrates the OurList interface implemented with a class that uses a linked structure rather than the array implementation of the previous chapter. The linked

More information

Solution to Test of Computer Science 203x Level Score: / 100 Time: 100 Minutes

Solution to Test of Computer Science 203x Level Score: / 100 Time: 100 Minutes Solution to Test of Computer Science 203x Level Score: / 100 Time: 100 Minutes PART I: Multiple Choice (3 points each) Note: The correct answer can be any combination of A, B, C, D. Example, Sample Question:

More information

16. Dynamic Data Structures

16. Dynamic Data Structures Data Structures 6. Dynamic Data Structures A data structure is a particular way of organizing data in a computer so that it can be used efficiently Linked lists, Abstract data types stack, queue, Sorted

More information

CSC 321: Data Structures. Fall 2013

CSC 321: Data Structures. Fall 2013 CSC 321: Data Structures Fall 2013 Lists, stacks & queues Collection classes: List (ArrayList, LinkedList), Set (TreeSet, HashSet), Map (TreeMap, HashMap) ArrayList performance and implementation LinkedList

More information

CSE 143, Winter 2010 Final Exam Thursday, March 18, 2010

CSE 143, Winter 2010 Final Exam Thursday, March 18, 2010 CSE 143, Winter 2010 Final Exam Thursday, March 18, 2010 Personal Information: Name: Section: Student ID #: TA: You have 110 minutes to complete this exam. You may receive a deduction if you keep working

More information

Queues. Stacks and Queues

Queues. Stacks and Queues Queues Reading: RS Chapter 14 Slides are modified from those provided by Marty Stepp www.buildingjavaprograms.com 1 Stacks and Queues Sometimes a less powerful, but highly optimized collection is useful.

More information

CSE143 Notes for Monday, 7/06/15

CSE143 Notes for Monday, 7/06/15 CSE143 Notes for Monday, 7/06/15 Arrays use contiguous memory: Arrays are what we call "random access" structures because we can quickly access any value within the array. If you use arr[2], then you can

More information

EXAMINATIONS 2015 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS

EXAMINATIONS 2015 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS T E W H A R E W Ā N A N G A O T E Student ID:....................... Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2015 TRIMESTER 2 COMP103 INTRODUCTION

More information

CS 106X, Lecture 16 More Linked Lists

CS 106X, Lecture 16 More Linked Lists CS 106X, Lecture 16 More Linked Lists reading: Programming Abstractions in C++, Chapters 11-12, 14.1-14.2 This document is copyright (C) Stanford Computer Science and Nick Troccoli, licensed under Creative

More information

Building Java Programs

Building Java Programs Building Java Programs Appendix Q Lecture Q-1: stacks and queues reading: appendix Q 2 Runtime Efficiency (13.2) efficiency: measure of computing resources used by code. can be relative to speed (time),

More information

Building Java Programs

Building Java Programs Building Java Programs A Back to Basics Approach Stuart Reges I Marty Stepp University ofwashington Preface 3 Chapter 1 Introduction to Java Programming 25 1.1 Basic Computing Concepts 26 Why Programming?

More information

CSE 143 Sample Final Exam #5

CSE 143 Sample Final Exam #5 CSE 143 Sample Final Exam #5 1. Inheritance and Polymorphism. Consider the following classes (System.out.println has been abbreviated as S.o.pln): public class Blue extends Green { public void one() {

More information

Java Magistère BFA

Java Magistère BFA Java 101 - Magistère BFA Lesson 4: Generic Type and Collections Stéphane Airiau Université Paris-Dauphine Lesson 4: Generic Type and Collections (Stéphane Airiau) Java 1 Linked List 1 public class Node

More information

CSC 321: Data Structures. Fall 2012

CSC 321: Data Structures. Fall 2012 CSC 321: Data Structures Fall 2012 Lists, stacks & queues Collection classes: List (ArrayList, LinkedList), Set (TreeSet, HashSet), Map (TreeMap, HashMap) ArrayList performance and implementation LinkedList

More information

Advanced Java Concepts Unit 2: Linked Lists.

Advanced Java Concepts Unit 2: Linked Lists. Advanced Java Concepts Unit 2: Linked Lists. The List interface defines the structure of a linear collection. Here are some of its methods. boolean add( E element ) Appends the element to the end of the

More information

Parsing JSON, Using Libraries, Java Collections, Generics. Slides adapted from Craig Zilles

Parsing JSON, Using Libraries, Java Collections, Generics. Slides adapted from Craig Zilles Parsing JSON, Using Libraries, Java Collections, Generics Slides adapted from Craig Zilles 1 CamelCaser Difficulty How difficult was the first assignment? A. Easy B. Moderate C. Challenging D. Unreasonable

More information

CSE 143, Winter 2009 Final Exam Thursday, March 19, 2009

CSE 143, Winter 2009 Final Exam Thursday, March 19, 2009 CSE 143, Winter 2009 Final Exam Thursday, March 19, 2009 Personal Information: Name: Section: Student ID #: TA: You have 110 minutes to complete this exam. You may receive a deduction if you keep working

More information

CMPSCI 187: Programming With Data Structures. Lecture 12: Implementing Stacks With Linked Lists 5 October 2011

CMPSCI 187: Programming With Data Structures. Lecture 12: Implementing Stacks With Linked Lists 5 October 2011 CMPSCI 187: Programming With Data Structures Lecture 12: Implementing Stacks With Linked Lists 5 October 2011 Implementing Stacks With Linked Lists Overview: The LinkedStack Class from L&C The Fields and

More information

CIS 265 Exam 2 First Name Last Name

CIS 265 Exam 2 First Name Last Name CIS 265 Exam 2 First Name Last Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) Which of the data types below does not allow duplicates? 1)

More information

CSE 143 Sample Final Exam #3

CSE 143 Sample Final Exam #3 CSE 143 Sample Final Exam #3 1. Inheritance and Polymorphism. Consider the following classes (System.out.println has been abbreviated as S.o.pln): public class Leo extends Don { public void method1() {

More information

References and objects

References and objects References and objects Arrays and objects use reference semantics. Why? efficiency. Copying large objects slows down a program. sharing. It's useful to share an object's data among methods. DrawingPanel

More information

Computer Science 62. Midterm Examination

Computer Science 62. Midterm Examination Computer Science 62 Bruce/Mawhorter Fall 16 Midterm Examination October 5, 2016 Question Points Score 1 15 2 10 3 10 4 8 5 9 TOTAL 52 Your name (Please print) 1. Suppose you are given a singly-linked list

More information

EXAMINATIONS 2016 TRIMESTER 2

EXAMINATIONS 2016 TRIMESTER 2 T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2016 TRIMESTER 2 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS

More information

DM537 Object-Oriented Programming. Peter Schneider-Kamp.

DM537 Object-Oriented Programming. Peter Schneider-Kamp. DM537 Object-Oriented Programming Peter Schneider-Kamp petersk@imada.sdu.dk! http://imada.sdu.dk/~petersk/dm537/! RECURSION (REVISITED) 2 Recursion (Revisited) recursive function = a function that calls

More information

DM503 Programming B. Peter Schneider-Kamp.

DM503 Programming B. Peter Schneider-Kamp. DM503 Programming B Peter Schneider-Kamp petersk@imada.sdu.dk! http://imada.sdu.dk/~petersk/dm503/! ABSTRACT DATATYPE FOR LISTS 2 List ADT: Specification data are all integers, here represented as primitive

More information

Largest Online Community of VU Students

Largest Online Community of VU Students WWW.VUPages.com http://forum.vupages.com WWW.VUTUBE.EDU.PK Largest Online Community of VU Students MIDTERM EXAMINATION SEMESTER FALL 2003 CS301-DATA STRUCTURE Total Marks:86 Duration: 60min Instructions

More information

Announcements. Lab 03 inbase late submissions Midterm #1 Friday. Project 2 is posted. Covers everything through basics of OOP

Announcements. Lab 03 inbase late submissions Midterm #1 Friday. Project 2 is posted. Covers everything through basics of OOP Announcements Lab 03 inbase late submissions Midterm #1 Friday Covers everything through basics of OOP Project 2 is posted Due next Wednesday All about nested loops good exam practice Coding style is part

More information

CS 2630 Computer Organization. Meeting 10/11: data structures in MIPS Brandon Myers University of Iowa

CS 2630 Computer Organization. Meeting 10/11: data structures in MIPS Brandon Myers University of Iowa CS 2630 Computer Organization Meeting 10/11: data structures in MIPS Brandon Myers University of Iowa Where we are going Compiler Instruction set architecture (e.g., MIPS) translating source code (C or

More information

Topic 10: The Java Collections Framework (and Iterators)

Topic 10: The Java Collections Framework (and Iterators) Topic 10: The Java Collections Framework (and Iterators) A set of interfaces and classes to help manage collections of data. Why study the Collections Framework? very useful in many different kinds of

More information

Wentworth Institute of Technology COMP1050 Computer Science II Spring 2017 Derbinsky. Collections & Maps. Lecture 12. Collections & Maps

Wentworth Institute of Technology COMP1050 Computer Science II Spring 2017 Derbinsky. Collections & Maps. Lecture 12. Collections & Maps Lecture 12 1 Review: Data Structure A data structure is a collection of data organized in some fashion The structure not only stores data but also supports operations for accessing/manipulating the data

More information

CSE 214 Computer Science II Final Review II

CSE 214 Computer Science II Final Review II CSE 214 Computer Science II Final Review II Fall 2017 Stony Brook University Instructor: Shebuti Rayana shebuti.rayana@stonybrook.edu http://www3.cs.stonybrook.edu/~cse214/sec02/ Linked List Problems Finding

More information

16. Linked Structures and Miscellaneous

16. Linked Structures and Miscellaneous 16. Linked Structures and Miscellaneous The main purpose of this section is to look at the cool topic of linked data structures. This is where we use one object to point to the next object in a structure

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 10 Lecture 10-1: ArrayList reading: 10.1 Welcome to CSE 143! I'm Hélène Martin http://cs.washington.edu/143 CSE 143 Goal: learn tools for automating complex tasks efficiently

More information

COMP200 GENERICS. OOP using Java, from slides by Shayan Javed

COMP200 GENERICS. OOP using Java, from slides by Shayan Javed 1 1 COMP200 GENERICS OOP using Java, from slides by Shayan Javed 2 ArrayList and Java Generics 3 Collection A container object that groups multiple objects 4 Collection A container object that groups multiple

More information

Topic 22 arrays - part 2. Copyright Pearson Education, 2010 Based on slides by Marty Stepp and Stuart Reges from

Topic 22 arrays - part 2. Copyright Pearson Education, 2010 Based on slides by Marty Stepp and Stuart Reges from Topic 22 arrays - part 2 Copyright Pearson Education, 2010 Based on slides by Marty Stepp and Stuart Reges from http://www.buildingjavaprograms.com/ Swapping values public static void main(string[] args)

More information

Chapter 5 Java Collection. Wang Yang

Chapter 5 Java Collection. Wang Yang Chapter 5 Java Collection Wang Yang wyang@njnet.edu.cn Outline Last Chapter Review Array & Arrays Tourism Collection & Collections Map Performance benchmark Last Chapter Review Exception Exception is an

More information

Linked Lists. College of Computing & Information Technology King Abdulaziz University. CPCS-204 Data Structures I

Linked Lists. College of Computing & Information Technology King Abdulaziz University. CPCS-204 Data Structures I College of Computing & Information Technology King Abdulaziz University CPCS-204 Data Structures I What are they? Abstraction of a list: i.e. a sequence of nodes in which each node is linked to the node

More information

Model Solutions. COMP 103: Test May, 2013

Model Solutions. COMP 103: Test May, 2013 Family Name:............................. Other Names:............................. ID Number:............................... Signature.................................. Instructions Time allowed: 45 minutes

More information

17. Java Collections. Organizing Data. Generic List in Java: java.util.list. Type Parameters ( Parameteric Polymorphism ) Data Structures that we know

17. Java Collections. Organizing Data. Generic List in Java: java.util.list. Type Parameters ( Parameteric Polymorphism ) Data Structures that we know Organizing Data Data Structures that we know 17 Java Collections Generic Types, Iterators, Java Collections, Iterators Today: Arrays Fixed-size sequences Strings Sequences of characters Linked Lists (up

More information

CSE 143 Sample Midterm Exam #7 (11wi)

CSE 143 Sample Midterm Exam #7 (11wi) CSE 143 Sample Midterm Exam #7 (11wi) 1. ArrayList Mystery Write the output produced by the following method when passed each of the following ArrayLists: public static void mystery(arraylist

More information

Arrays. https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

Arrays. https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html 1 Arrays Arrays in Java an array is a container object that holds a fixed number of values of a single type the length of an array is established when the array is created 2 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

More information

CS 106X Sample Final Exam #2

CS 106X Sample Final Exam #2 CS 106X Sample Final Exam #2 This sample exam is intended to demonstrate an example of some of the kinds of problems that will be asked on the actual final exam. We do not guarantee that the number of

More information

Summer Final Exam Review Session August 5, 2009

Summer Final Exam Review Session August 5, 2009 15-111 Summer 2 2009 Final Exam Review Session August 5, 2009 Exam Notes The exam is from 10:30 to 1:30 PM in Wean Hall 5419A. The exam will be primarily conceptual. The major emphasis is on understanding

More information

Introduction to Computer Science II CS S-20 Linked Lists III

Introduction to Computer Science II CS S-20 Linked Lists III Introduction to Computer Science II CS112-2012S-20 Linked Lists III David Galles Department of Computer Science University of San Francisco 20-0: Linked List Previous Practical Example: removeat(int index)

More information

Prelim 1. CS2110, October 2, 2014, 5:30 PM Extra Total Question TrueFalse Multiple Object Oriented

Prelim 1. CS2110, October 2, 2014, 5:30 PM Extra Total Question TrueFalse Multiple Object Oriented Prelim 1 CS2110, October 2, 2014, 5:30 PM 1 2 3 4 5 Extra Total Question TrueFalse Multiple Object Oriented Recursion Lists Extra Credit Max 20 20 30 15 15 5 100 Score Grader The exam is closed book and

More information

CSE 143 Lecture 16. Binary Search Trees. read slides adapted from Marty Stepp and Hélène Martin

CSE 143 Lecture 16. Binary Search Trees. read slides adapted from Marty Stepp and Hélène Martin CSE 143 Lecture 16 Binary Search Trees read 17.3-17.4 slides adapted from Marty Stepp and Hélène Martin http://www.cs.washington.edu/143/ Binary search trees binary search tree ("BST"): a binary tree where

More information

CS 106B Practice Final Exam #8 (15au) ANSWER KEY

CS 106B Practice Final Exam #8 (15au) ANSWER KEY 1. Linked Lists (write) CS 106B Practice Final Exam #8 (15au) ANSWER KEY // solution 1 void LinkedIntList::partitionSort() { if (!front) { return; // empty list case ListNode* current = front; while (current->next!=

More information

Introduction to Linked Data Structures

Introduction to Linked Data Structures Introduction to Linked Data Structures A linked data structure consists of capsules of data known as nodes that are connected via links Links can be viewed as arrows and thought of as one way passages

More information

Java Collections Framework

Java Collections Framework Java Collections Framework Introduction In this article from my free Java 8 course, you will be given a high-level introduction of the Java Collections Framework (JCF). The term Collection has several

More information

11-1. Collections. CSE 143 Java. Java 2 Collection Interfaces. Goals for Next Several Lectures

11-1. Collections. CSE 143 Java. Java 2 Collection Interfaces. Goals for Next Several Lectures Collections CSE 143 Java Collections Most programs need to store and access collections of data Collections are worth studying because... They are widely useful in programming They provide examples of

More information

Topic #9: Collections. Readings and References. Collections. Collection Interface. Java Collections CSE142 A-1

Topic #9: Collections. Readings and References. Collections. Collection Interface. Java Collections CSE142 A-1 Topic #9: Collections CSE 413, Autumn 2004 Programming Languages http://www.cs.washington.edu/education/courses/413/04au/ If S is a subtype of T, what is S permitted to do with the methods of T? Typing

More information

CMSC 433 Section 0101 Fall 2012 Midterm Exam #1

CMSC 433 Section 0101 Fall 2012 Midterm Exam #1 Name: CMSC 433 Section 0101 Fall 2012 Midterm Exam #1 Directions: Test is closed book, closed notes. Answer every question; write solutions in spaces provided. Use backs of pages for scratch work. Good

More information