1 DATA STRUCTURES: LISTS. 2 LISTS ARE USED TO WORK WITH A GROUP OF VALUES IN AN ORGANIZED MANNER. A SERIES OF MEMORY LOCATIONS CAN BE DIRECTLY REFERENCED.

Slides:



Advertisements
Similar presentations
An Introduction to Programming with C++ Fifth Edition
Advertisements

Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 8 Arrays.
Computer Science 1620 Multi-Dimensional Arrays. we used arrays to store a set of data of the same type e.g. store the assignment grades for a particular.
©2004 Brooks/Cole Chapter 8 Arrays. Figures ©2004 Brooks/Cole CS 119: Intro to JavaFall 2005 Sometimes we have lists of data values that all need to be.
1 Lecture 20:Arrays and Strings Introduction to Computer Science Spring 2006.
Chapter 8. 2 Objectives You should be able to describe: One-Dimensional Arrays Array Initialization Arrays as Arguments Two-Dimensional Arrays Common.
1 Arrays  Arrays are objects that help us organize large amounts of information  Chapter 8 focuses on: array declaration and use passing arrays and array.
 2006 Pearson Education, Inc. All rights reserved Arrays.
 2003 Prentice Hall, Inc. All rights reserved. 1 Arrays –Structures of related data items –Static entity (same size throughout program) A few types –Pointer-based.
Multiple-Subscripted Array
Chapter 9: Arrays and Strings
Chapter 9: Arrays and Strings
Chapter 9: Arrays and Strings
C++ for Engineers and Scientists Third Edition
Chapter 8 Arrays and Strings
Chapter 7 Arrays C++ Programming, Namiq Sultan1 Namiq Sultan University of Duhok Department of Electrical and Computer Engineering Reference: Starting.
Arrays. Objectives Learn about arrays Explore how to declare and manipulate data into arrays Learn about “array index out of bounds” Become familiar with.
Arrays (Part II). Two- and Multidimensional Arrays Two-dimensional array: collection of a fixed number of components (of the same type) arranged in two.
Prepared by MURLI MANOHAR PGT (COMPUTER SCIENCE) KV,B.E.G., PUNE.
11 Chapter 8 ARRAYS Continued. 22 MULTI-DIMENSIONAL ARRAYS A one-dimensional array is useful for storing/processing a list of values. For example: –The.
Array Processing Simple Program Design Third Edition A Step-by-Step Approach 7.
C++ Arrays. Agenda What is an array? What is an array? Declaring C++ arrays Declaring C++ arrays Initializing one-dimensional arrays Initializing one-dimensional.
 2006 Pearson Education, Inc. All rights reserved Arrays.
chap8 Chapter 8 Arrays (Hanly) chap8 2 Data Structure Simple data types use a simple memory to store a variable. Data Structure: a.
Chapter 8 Arrays and Strings
Introduction to Arrays in Java Corresponds with Chapter 6 of textbook.
EGR 2261 Unit 8 One-dimensional Arrays  Read Malik, pages in Chapter 8.  Homework #8 and Lab #8 due next week.  Quiz next week.
Arrays Part 9 dbg. Arrays An array is a fixed number of contiguous memory locations, all containing data of the same type, identified by one variable.
Arrays Module 6. Objectives Nature and purpose of an array Using arrays in Java programs Methods with array parameter Methods that return an array Array.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
1 © 2002, Cisco Systems, Inc. All rights reserved. Arrays Chapter 7.
1 STRUCTURES AND POINTERS. 2 A VARIABLE OF THIS COMPOSITE TYPE CAN HAVE MORE THAN ONE VALUE, GROUPED TOGETHER TO DESCRIBE AN ENTITY. THE COMPONENTS OF.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Arrays.
C++ for Engineers and Scientists Second Edition Chapter 11 Arrays.
CHAPTER 7 arrays I NTRODUCTION T O C OMPUTER P ROGRAMMING (CSC425)
1 Topic: Array Topic: Array. 2 Arrays Arrays In this chapter, we will : Learn about arrays Learn about arrays Explore how to declare and manipulate data.
Week # 2: Arrays.  Data structure  A particular way of storing and organising data in a computer so that it can be used efficiently  Types of data.
Computer Programming TCP1224 Chapter 11 Arrays. Objectives Using Arrays Declare and initialize a one-dimensional array Manipulate a one-dimensional array.
Arrays Why we need data structure? Simple data types use a single memory cell to store a variable. Sometimes (for example scores of a class) it is more.
Section 5 - Arrays. Problem solving often requires information be viewed as a “list” List may be one-dimensional or multidimensional List is implemented.
1 Chapter 7 Arrays. 2 Topics 7.1 Arrays Hold Multiple Values 7.2 Accessing Array Elements 7.3 No Bounds Checking in C Array Initialization 7.5 Processing.
A First Book of C++: From Here To There, Third Edition2 Objectives You should be able to describe: One-Dimensional Arrays Array Initialization Arrays.
Arrays. Related data items Collection of the same types of data. Static entity – Same size throughout program.
Copyright 2004 Scott/Jones Publishing Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 8 Arrays.
 2008 Pearson Education, Inc. All rights reserved. 1 Arrays and Vectors.
1 Chapter 12 Arrays. 2 C++ Data Types structured array struct union class address pointer reference simple integral enum char short int long bool floating.
UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Arrays.
Chapter 8 Arrays. A First Book of ANSI C, Fourth Edition2 Introduction Atomic variable: variable whose value cannot be further subdivided into a built-in.
Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 11P. 1Winter Quarter Arrays Lecture 11.
Arrays.
Arrays Chapter 12. Overview Arrays and their properties Creating arrays Accessing array elements Modifying array elements Loops and arrays.
Arrays Chapter 7. Arrays Hold Multiple Values Array: variable that can store multiple values of the same type Values are stored in adjacent memory locations.
Module 1: Array ITEI222 - Advance Programming Language.
Week 6 - Friday.  What did we talk about last time?  Loop examples.
Opening Input/Output Files ifstream infile; ofstream outfile; char inFileName[40]; char outFileName[40]; coutinFileName;
Arrays Declaring arrays Passing arrays to functions Searching arrays with linear search Sorting arrays with insertion sort Multidimensional arrays Programming.
Multi-dimensional Array 1 Multi-dimensional array refers to an array with more than one index. It is a logical representation. On physical storage, the.
SEQUENTIAL AND OBJECT ORIENTED PROGRAMMING Arrays.
Arrays. C++ Style Data Structures: Arrays(1) An ordered set (sequence) with a fixed number of elements, all of the same type, where the basic operation.
Lecture #15 ARRAYS By Shahid Naseem (Lecturer). 2 ARRAYS DEFINITION An array is a sequence of objects of same data type. The objects in an array are also.
VISUAL C++ PROGRAMMING: CONCEPTS AND PROJECTS Chapter 7A Arrays (Concepts)
Chapter 9 Introduction to Arrays Fundamentals of Java.
Chapter 7: Arrays. 7.1 Arrays Hold Multiple Values.
KUKUM-06/07 EKT120: Computer Programming 1 Week 6 Arrays-Part 1.
LESSON 8: INTRODUCTION TO ARRAYS. Lesson 8: Introduction To Arrays Objectives: Write programs that handle collections of similar items. Declare array.
A FIRST BOOK OF C++ CHAPTER 7 ARRAYS. OBJECTIVES In this chapter, you will learn about: One-Dimensional Arrays Array Initialization Arrays as Arguments.
Chapter 8: Arrays Starting Out with C++ Early Objects Ninth Edition
Computer Programming BCT 1113
Basic Array Definition
Presentation transcript:

1 DATA STRUCTURES: LISTS

2 LISTS ARE USED TO WORK WITH A GROUP OF VALUES IN AN ORGANIZED MANNER. A SERIES OF MEMORY LOCATIONS CAN BE DIRECTLY REFERENCED AND MANIPULATED AS A SINGLE ENTRY.

3 EXAMPLE: ASSUME THAT WE HAVE TO MAINTAIN SEVERAL RELATED VALUES OF THE SAME TYPE (i.e. 5 GRADES). THE FOLLOWING MAY BE USED. grade1 grade2 grade3 grade4 grade

4 IF THE LIST OF GRADES IS LONG, THEN THIS BECOMES INEFFICIENT TO WORK WITH. A REASONABLE ALTERNATIVE IS TO ORGANIZE THE VALUES UNDER ONE STRUCTURE; THE ARRAY.

5 int list [5]; A 5 COMPONENT LIST list EXAMPLE:

6 STRUCTURED DATA TYPE THE ARRAY IS A DATA TYPE THAT IS A COLLECTION OF COMPONENTS OF A SIMPLER TYPE (COMPOSITE) WITH A FIXED NUMBER OF ITEMS (STATIC). ALL ARE OF THE SAME TYPE (HOMOGENOUS). EACH COMPONENT CAN BE ACCESSED INDIVIDUALLY BY SPECIFYING ITS POSITION WITHIN THE COLLECTION (ORDERED).

7 TO ACCESS THE ARRAY VARIABLE AS A UNIT, THE ARRAY NAME IS USED. TO ACCESS AN INDIVIDUAL COMPONENT, THE NAME OF THE ARRAY VARIABLE, AND AN EXPRESSION THAT SPECIFIES THE INDIVIDUAL COMPONENT TO BE ACCESSED IS USED. EXAMPLE: list[3] ACCESSING INDIVIDUAL COMPONENTS

8 THE GENERAL FORM FOR DEFINING AND ALLOCATING MEMORY FOR AN ARRAY TYPE IS: DEFINING ARRAYS component_type type_name [ array_size ];

9 const int NUM_OF_STUDENTS = 25; char grades[NUM_OF_STUDENTS]; char grade; EXAMPLE:

10 type_name IS A USER DEFINED IDENTIFIER. THE array_size GIVES THE RANGE OF INDEX VALUES (FROM 0 TO array_size-1). IT DETERMINES HOW MANY COMPONENTS THERE ARE IN THIS ARRAY TYPE. THE component_type DESCRIBES THE TYPE OF THE ELEMENTS OF THE ARRAY. ONCE AN ARRAY STRUCTURE HAS BEEN DEFINED, VARIABLES OF THAT TYPE CAN BE DECLARED.

11 THE ASSIGNMENT STATEMENT AND ARRAYS TO STORE THE VALUES 98, 78, 65, 87, 45 INTO THE ARRAY list. list[0] = 98; list[1] = 78; list[2] = 65; list[3] = 87; list[4] = 45;

12 TO INTERCHANGE THE VALUE OF TWO COMPONENTS ( list[3] WITH list[4] ), THE FOLLOWING STATEMENT WILL ACCOMPLISH THIS (ASSUME THAT temp HAS BEEN DECLARED EARLIER). temp = list[3]; list[3] = list[4]; list[4] = temp; (USED WHEN ARRANGING VALUES)

13 list[3] 87 ? temp INITIAL MEMORY STATUS list[4] 45 list[3] temp AFTER 1st ASSIGNMENT list[4] 45 list[3] temp AFTER 2nd ASSIGNMENT list[4] 45 list[3] temp AFTER 3rd ASSIGNMENT list[4] 87

14 cin >> list[0] >> list[1] >> list[2] >> list[3] >> list[4]; WOULD ALLOW FOR 5 VALUES TO BE ENTERED TO ARRAY VARIABLE list. TO PRINT 5 COMPONENTS cout << list[0] << list[1] << list[2] << list[3] << list[4]; CAN BE USED. INPUT/OUTPUT OF ARRAY ELEMENTS

15 INPUT/OUTPUT USING REPETITIVE STRUCTURES LOOPS CAN BE USED TO SYSTEMATICALLY MANIPULATE OR REFERENCE ARRAY COMPONENTS. for (i = 0; i < 5; i++) cin >> list[i]; for (i = 0; i < 5; i++) cout << list[i];

16 THE ASSIGNMENT STATEMENT AND ARRAYS : for (i = 0; i < 5; i++) { cin >> test1 >> test2 >> test3; total_grade = test1 + test2 + test3; list[i] = total_grade; } :

17 ARRAY PROCESSING WITH REPETITIVE STRUCTURE USING THE EARLIER DECLARATION OF ARRAY VARIABLE list AND THE INPUT CODE SEGMENT (ASSUME total, larger, AND average HAVE BEEN DEFINED EARLIER), THE FOLLOWING CODE SEGMENT COMPUTES THE AVERAGE. : total = 0; for (i = 0; i < 5; i++) total += list[i]; average = total / 5; :

18 FINDING THE LARGEST SCORE: : larger = list[0]; for (i = 1; i < 5; i++) if (list[i] > larger) larger = list[i]; :

19 AN ARRAY VARIABLE CAN BE PASSED AS A PARAMETER TO A FUNCTION. A FUNCTION CAN NOT RETURN ALL THE ARRAY COMPONENTS THROUGH THE return STATEMENT. ARRAYS ARE ALWAYS PASSED BY REFERENCE IN C++, UNLESS THE RESERVED WORD const IS USED IN FRONT OF THE FORMAL PARAMETER. ARRAYS AND FUNCTIONS

20 EXAMPLE: USING THE PREVIOUS DECLARATIONS OF ARRAY list THAT NOW CONTAINS STUDENTS GRADES IN ASCENDING ORDER, REARRANGE THE GRADES (USING ANOTHER LIST) IN DESCENDING ORDER. ALSO ASSUME newlist IS DECLARED TO BE OF TYPE Grades. A CALL TO FUNCTION WHICH WILL DO THE THIS LOOKS LIKE. Rearrange_List (list, newlist);

newlist list

22 THE FUNCTION: void Rearrange_List (const Grades ascend, Grades descend) // this function reverses the components // of the first array into the second. // The first parameter is passed by value, // the second one is passed by reference. { int count; for (count = 0; count < 5; count ++) descend[count] = ascend[4 - count]; return; }

23 MULTI-DIMENSIONAL LISTS

24 DATA REPRESENTED IN TABULAR FORM IS REFERENCED AS A TWO-DIMENSIONAL ENTITY. MORE COMPLICATED REPRESENTATIONS REQUIRE MULTIPLE REFERENCE PATHS.

25 APRIL 1992 S M T W TH F S WEEK WEEK WEEK WEEK WEEK ANDREW’S BIRTHDAY

26 TWO-DIMENSIONAL ARRAYS DATA STRUCTURE USED TO REPRESENT A TABLE WITH ROWS AND COLUMNS. A COMPONENT IN A TWO-DIMENSIONAL ARRAY IS ACCESSED BY GIVING WHAT CORRESPONDS TO THE ROW AND COLUMN OF THE ITEM. IN A TWO-DIMENSIONAL ARRAY TWO ARRAY SIZES MUST BE DESCRIBED.

27 typedef int Calendar[5][7]; Calendar month; EXAMPLE:

28 TO ACCESS A COMPONENT IN A TWO-DIMENSIONAL ARRAY AN EXPRESSION THAT INDICATES WHERE THE COMPONENT LIES ON EACH DIMENSION IS USED. month [4][2] FIFTH THIRD DIMENSION DIMENSION COORDINATE COORDINATE REPRESENTS ANDREW’S BIRTHDAY

29 const int WEEKS = 52; const int DAYS = 7; typedef int WholeYear[WEEKS][DAYS]; WholeYear year; year IS A TWO-DIMENSIONAL ARRAY WITH 364 COMPONENTS AS A TABLE WITH 52 ROWS AND 7 COLUMNS. ANOTHER EXAMPLE:

30 [0][1][2]... [6] [0] [1] [2]. [51] ARRAY year

31 ANOTHER WAY OF INDEXING THE SAME STRUCTURE : const int NUM_WEEKS = 52; enum Days {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}; typedef int WholeYear[NUM_WEEKS][Days]; WholeYear year; YEAR HAS THE SAME NUMBER OF ROWS AND COLUMNS IN BOTH EXAMPLES, BUT THE SECOND COMPONENT INDEXED DIFFERENTLY. year[2][MONDAY] = 15;

32 ANOTHER METHOD OF DECLARING TWO-DIMENSIONAL ARRAYS. APRIL 1992 (5 ONE DIMENSIONAL ARRAYS, EACH OF LENGTH 7)

33 typedef int Week[7]; typedef Week Calendar[5]; Calendar month; EXAMPLE:

34 IT IS ADVANTAGEOUS TO DEFINE AN ARRAY OF ARRAYS. IF THE ROWS HAVE BEEN DEFINED FIRST AS A ONE-DIMENSIONAL ARRAY, EACH CAN BE PASSED TO A MODULE EXPECTING A ONE-DIMENSIONAL ARRAY OF THE SAME TYPE AS A PARAMETER.

35 INPUT/OUTPUT WITH TWO DIMENSIONAL ARRAYS ASSUME A TWO-DIMENSIONAL ARRAY VARIABLE class_grades DECLARED AS: typedef int Cis113[20][3]; Cis113 class_grades; AND 20 LINES OF INPUT EACH CONTAINING 3 TEST SCORES. THE DATA CAN BE ENTERED BY READING THEM ONE LINE AT A TIME (FOR 20 LINES).

36 : for (row = 0; row > class_grades[row][column]; : EXAMPLE:

37 TO DISPLAY THE CONTENTS OF THE ARRAY, THE SAME CODE SEGMENT LOGIC IS USED. : for (row = 0; row < 20; row ++) { for (column = 0; column < 3; column++) cout << class_grades[row][column]; cout << endl; } :

38 ARRAY PROCESSING IT IS POSSIBLE TO REFERENCE AND MANIPULATE ARRAY COMPONENTS DIRECTLY AND SELECTIVELY AS INDIVIDUAL VALUES. IN SOME APPLICATIONS, IT MAY BE POSSIBLE THAT EACH COMPONENT IS SYSTEMATICALLY ACCESSED. INITIALIZING, TOTALING, ROWS AND COLUMN SUMMING, AND OTHER COMPUTATIONS ARE SOME EXAMPLES.

39 INITIALIZE THE ARRAY EACH ARRAY LOCATION IS ACCESSED AND SET TO A SPECIFIC VALUE (ZERO IN THIS CASE). for (row = 0; row < NUMBER_OF_ROWS; row ++) for (column = 0; column < NUMBER_OF_COLUMNS; column ++) class_grades[row][column] = 0;

40 SUM THE ROWS for (row = 0; row < NUMBER_OF_ROWS; row ++) { total = 0; for (column = 0; column < NUMBER_OF_COLUMNS; column ++) total += class_grades[row][column]; cout << "Row sum: " << total << endl; } ADDS ALL 3 GRADES FOR EACH STUDENT (20 STUDENTS IN TOTAL)

41 SUM THE COLUMNS for (column = 0; column < NUMBER_OF_COLUMNS; column++) { total = 0; for (row = 0; row < NUMBER_OF_ROWS; row++) total += class_grades[row][column]; cout << "Column sum: " << total << endl; } ADDS ALL STUDENTS EXAM GRADES FOR ALL EXAMS (3 EXAMS IN TOTAL FOR EACH STUDENT)

42 FIND THE AVERAGE OF THE VALUES OF A COLUMN for (column = 0; column < NUMBER_OF_COLUMNS; column ++) { total = 0; for (row = 0; row < NUMBER_OF_ROWS; row ++) total += class_grades[row][column]; average = total / NUMBER_OF_ROWS; cout << "Average score for test " << column << " is " << average << endl; }

43 MULTI-DIMENSIONAL ARRAYS C++ DOES NOT PLACE ANY LIMIT ON THE NUMBERS OF DIMENSIONS AN ARRAY CAN HAVE. IN N-DIMENSIONAL ARRAYS EACH COMPONENT IS ACCESSED BY N INDICES, EACH OF WHICH REPRESENTS THE COMPONENT’S POSITION WITHIN THAT DIMENSION.

44 typedef int Total[3][4][5]; Total value; THE NUMBER OF COMPONENTS IN value IS 3 * 4 * 5 = 60

45 value [1][0][0] value[0][3][4] value [2][3][3] value [1][2][2] value [0][1][1] 3-DIMENSIONAL ARRAY value

46 ANOTHER EXAMPLE: const int NUMBER_OF_STUDENTS = 100; const int NUMBER_OF_COURSES = 4; const int NUMBER_OF_EXAMS = 3; typedef int GradeType[NUMBER_OF_COURSES] [NUMBER_OF_EXAMS] [NUMBER_OF_STUDENTS];

47 GradeType num_grades; int id; int course; int exam; int current_exam; int total_grade; THE NUMBER OF COMPONENTS IN num_grades IS 1200 (4 * 3 * 100)

48 A CODE SEGMENT TO SUM AND PRINT THE TOTAL GRADE FOR ALL EXAMS (TAKEN SO FAR) IN EACH COURSE, BY EVERY STUDENT. : for (id = 0; id < NUMBER_OF_STUDENTS; id ++) { total_grade = 0; for (course = 0; course < NUMBER_OF_COURSES; course ++) for (exam = 0; exam < current_exam; exam ++) total_grade += num_grades[course][exam][id]; cout << "ID # " << id << " The total grade to date is " << total_grade << endl; } :

49 A CODE SEGMENT TO SUM ALL STUDENTS' GRADES FOR EACH COURSE. for (course = 0; course < NUMBER_OF_COURSES; course ++) { total_grade = 0; for (id = 0; id < NUMBER_OF_STUDENTS; id ++) for (exam = 0; exam < current_exam; exam ++) total_grade += num_grades[course][exam][id]; cout << "Course # " << course << " The grand total is " << total_grade << endl; }