CIS 15CData Structures
CIS 15BG or 26A
English Writing 211 and Reading 211 (or Language Arts 211), or English as a Second Language 272 and 273
Stacks, queues, linked lists, trees, and graphs; internal and external sorting; use of recursion; hashing; structured programming; and abstract data type concepts.
Data Structures: A Pseudocode Approach With C. by Richard F. Gilberg. & Behrouz A. Forouzan second edition, Thomson 2004
To test your proficiency in C before enrolling in this class, go to
To review pointers, go to "A Tutorial on Pointers and Arrays in C"
Upon completion of the course, the student will:
- Design programs using abstract data type concepts.
- Describe operations on and applications for stacks, queues, linked lists, trees, and graphs.
- Implement stacks, queues, linked lists, trees, hashing algorithms, and graphs.
- Create recursive algorithms, and relate efficiency to uses of recursion.
- Describe advanced sorting concepts (e.g. Shell, Heap and Quicksort), and discuss the usage and relative advantages of various sorts.
- Describe merge and external sorts (e.g. Natural, Balanced, and Polyphase).
- Discuss and implement basic graph data structures and their traversals.
- Apply software engineering principles including structured programming and abstract data types.