1. Trang chủ
  2. » Giáo án - Bài giảng

Data Structure and Algorithms CO2003 Chapter 1 Introduction

44 424 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 348,34 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

A combination of elements in which each is either a data type or another data structure 2.. Abstract data typeThe concept of abstraction: • Users knowwhata data typecan do.. Abstract dat

Trang 1

Data Structure and Algorithms [CO2003]

Chapter 1 - Introduction

Lecturer: Duc Dung Nguyen, PhD

Contact: nddung@hcmut.edu.vn

August 15, 2016

Faculty of Computer Science and Engineering

Hochiminh city University of Technology

Trang 2

1 Basic concepts

2 Revision

Trang 3

Basic concepts

Trang 4

What is Data?

(Source: datorama.com)

2

Trang 5

What is Data?

Data

Data is information that has been translated into a form that is more

convenient to calculate, analyze

Example

• Numbers, words, measurements, observations or descriptions of

things

• Qualitativedata: descriptive information,

• Quantitativedata: numerical information (numbers)

• Discretedata can only take certain values (like whole numbers)

• Continuousdata can take any value (within a range)

Trang 6

floating point −∞, , 0.0, , ∞ ∗, +, −, /,

character \0, , ‘A’, ‘B’, ,

‘a’, ‘b’, , ∼

<, >,

Trang 7

Data structure

What is a data structure?

1 A combination of elements in which each is either a data type or

another data structure

2 A set of associations or relationships (structure) that holds the datatogether

Example

Anarrayis a number ofelements of the same typein a specific order

Trang 8

Abstract data type

The concept of abstraction:

• Users knowwhata data typecan do

• Howit is done ishidden

Trang 9

Abstract data type

Figure 1: Abstract data type model (source: Slideshare)

Trang 10

Example: List

Interface

• Data:sequence of elements of a particular data type

• Operations: accessing, insertion, deletion

Implementation

• Array

• Linked list

Trang 12

• The most commontool to define algorithms

• English-like representationof the algorithm logic

• Pseudocode = English + code

• English: relaxed syntax being easy to read

• Code: instructions using basic control structures (sequential,

conditional, iterative)

Trang 13

Algorithm Header

• Parameters and their types

• Purpose: what the algorithm does

• Precondition: precursor requirements for the parameters

• Postcondition: taken action and status of the parameters

• Return condition: returned value

Algorithm Body

• Statements

• Statement numbers: decimal notation to express levels

• Variables: important data

• Algorithm analysis: comments to explain salient points

• Statement constructs: sequence, selection, iteration

Trang 15

Revision

Trang 16

• Where type_nameis a name for the structure type, object_names

can be a set of valid identifiers for objects that have the type of thisstructure

• Within braces{ }, there is a list with the data members, each one isspecified with a type and a valid identifier as its name

• struct requires either atype_nameor at least one name in

object_names, but not necessarily both

Trang 18

Data structures

A member of an object can be accessed directly by a dot (.) inserted

between the object name and the member name

• toyota.year,mercedes.year, andbmw.yearare of typeint

• toyota.brand,mercedes.brand, andbmw.brandare of type

string

Trang 21

Data structures

Exercise

• Define a data structurestudent_tcontaining a student’s name,

firstname and age

• Write a code in C++ to take input your data and display it

Trang 23

• Where class_nameis a valid identifier for the class,object_names

is an optional list of names for objects of this class

• The body of the declaration can containmembers, which can either

be data or function declarations, and optionally

access_specifiers

Trang 26

Constructors

• Automatically called whenever a new object of a class is created

• Initializing member variables or allocate storage of the object

• Declared with a name that matches the class name and without anyreturn type; not even void

Trang 29

Definition

A pointer is a variable whose value isthe address of another variable, i.e.,direct address of the memory location

Address-of operator (&)

The address of a variable can be obtained by preceding the name of a

variable with an ampersand sign (&), known asaddress-of operator.For example:

p = &v a l u e ;

Dereference operator (*)

To access the variable pointed to by a pointer, we precede the pointer

name with thedereference operator(*)

v a l u e = ∗p ;

Trang 33

Definition

Anarrayis a series of elements of the same type placed in contiguous

memory locations that can be individuallyreferenced by a unique

identifier with an index

Trang 35

Pointers and arrays

The concept ofarrays is related to that of pointers.Arrayswork very

much likepointersto their first elements, and, actually, an array can

always be implicitly converted to the pointer of the proper type

For example, consider these two declarations:

i n t m y a r r a y [ 1 0 ] ;

i n t ∗ m y p o i n t e r ;The following assignment operation would be valid:

m y p o i n t e r = m y a r r a y ;

Trang 36

Pointers and arrays

Trang 37

• mycar is an object of structure typecar_t.

• pcar is a pointer to point to an object of structure typecar_t

The following code is valid:

p c a r = &mycar ;

The value of the pointerpcarwould be assigned the address of object

mycar

Trang 38

Pointers to structures

arrow operator (->)

Thearrow operator(->) is a dereference operator that is used

exclusively with pointers to objects that have members This operator

serves to access the member of an object directly from its address

p c a r −>y e a r

Difference:

• Two expressionspcar->yearand(*pcar).yearare equivalent, and

both access the member yearof the data structure pointed by a

pointer called pcar

• Two expressions*mycar.yearor*(mycar.year) are equivalent Thiswould access the value pointed by a hypothetical pointer member

called yearof the structure objectmycar(which is not the case,

since yearis not a pointer type)

Trang 39

Pointers to structures

Combinations of the operators for pointers and for structure members:Expression Equivalent What is evaluated

a.b Member b of object a

pa->b (*pa).b Member b of object pointed to by

pa

*a.b *(a.b) Value pointed to by member b of

object a

Trang 40

Pointers to structures

Exercise

• Define a data structurestudent_tcontaining a student’s name,

firstname and age

• Write a code in C++ usingpointers to structuresto take input yourdata and display it

Trang 42

Pointers to structures

Structures can also be nested in such a way that an element of a

structure is itself another structure:

Ngày đăng: 29/03/2017, 18:21

TỪ KHÓA LIÊN QUAN