# Course Instructors

Prof. Dr. Hasan Amca

Office No: EE 134, Office Tel: 630 1500

e-mail: hasan.amca@emu.edu.tr

Fuat Uyguroğlu

Office No: EE 209, Office Tel: 1434

e-mail: fuat.uyguroglu@emu.edu.tr

• ### Course Description

Catalog Description

Storage structures and memory allocations. Primitive data structures. Data abstraction and Abstract Data Types.  Array and  record structures. Sorting algorithms and quick sort. Linear & binary search. Complexity of algorithms. String processing. Stacks & queues; stack operations, implementation of recursion, polish notation and arithmetic expressions. Queues and implementation methods. Dequeues & priority queues. Linked storage representation and linked-lists. Doubly linked lists and circular lists. Binary trees. Tree traversal algorithms. Tree searching. General trees. Graphs; terminology, operations on graphs and traversing algorithms.

Course Objectives

At the end of this course, students will be able to:

1. understand the fundamental data structures and Abstract Data Types,
2. understand the main sorting and searching algorithms and recursion,
3. analyze  the time and space complexity of a given algorithm,
4. understand and implement stacks and queues,
5. process the linked list and tree structures,
6. understand the graph terminology and perform basic graph operations.

• This topic

• ### Functions

OBJECTIVES

In this chapter you will learn:

• To construct programs modularly from small pieces called functions.
• The common math functions available in the C Standard Library.
• To create new functions.
• The mechanisms used to pass information between functions.
• Simulation techniques using random num­ber generation.
• How to write and use recursive functions, i.e., functions that call themselves.
• ### Arrays

OBJECTIVES

• In this chapter you will learn:
• To use the array data structure to represent lists and tables of values.
• To define an array, initialize an array and refer to individual elements of an array.
• To define symbolic constants.
• To pass arrays to functions.
• To use arrays to store, sort and search lists and tables of values.
• To define and manipulate multiple-subscripted arrays.
• ### Pointers

OBJECTIVES

• In this chapter you will learn:
• Pointers and pointer operators.
• To use pointers to pass arguments to functions by reference.
• The close relationships among pointers, arrays and strings.
• To use pointers to functions.
• To define and use arrays of strings.
• ### Data Structurs

OBJECTIVES

In this chapter you will learn:

• To create and use structures, unions and enumerations.
• To pass structures to functions by value and by reference.
• To manipulate data with the bitwise operators.
• To create bit fields for storing data compactly.

• ### Linked_Lists, Queues and Trees

OBJECTIVES

In this chapter you will learn:

• To allocate and free memory dynamically for data objects.
• To form linked data structures using pointers, self-referential structures and recursion.
• To create and manipulate linked lists, queues, stacks and binary trees.
• Various important applications of linked data structures.

• ### Binary_Trees

Binary Trees

• Introduction to Trees
• Binary Trees: Basic Definitions
• Traversing Binary Trees
• Node Representation of Binary Trees
• Primitive Functions in Binary Trees