CS 314: Data Structures: Lecture Notes


Copyright © 2014 by Gordon S. Novak Jr.

Permission is granted for individuals to make copies of these notes for personal use, or for instructors to make copies for classroom use.

Note: Some of these pages use math symbols. Microsoft Internet Explorer will not display the math symbols, but Firefox will.

Contents

== vs. .equals nil 34

a* 266

abstract syntax tree 114, 196

acyclic 245

adjacency list 249

adjacency matrix 250

adjacent 249

alist 82, 180

amortize 28

api 103

append 52

arc 245

array 86

array performance 235

arraylist 108

assoc 82, 180

association list 82, 180

associative 276

ast 114, 196

atomic 300

avl tree 165

b tree 167

backtrack 146

bag 197

balanced parentheses 93

balanced tree 164

base case 41, 42

big o 11

bijective 273

binary heap 221

binary tree 164

binding 180

binding list 180

boolean matrix 250

boxed integer 31

boxed number 32

branching factor 146

bucket 212

buffer 297

buffering 297

cache 215, 234

cambridge polish 158

car 37

cartesian product 245

cdr 37

child 112

circular linked list 62

circular queue 101

circularly linked list 62

clustering 205

collection 103, 197

collision 211

commutative 276

comparator 70, 71

comparison 70

complete 221

complexity 11

cons 36

constructive 54

critical path 254

cycle 245

dag 247

dense 248

depth-first search 146

deque 109

design pattern 43, 47, 78, 135

destructive 54

dfs 146

digraph 247

dijkstra algorithm 257

directed 247

directed acyclic graph 247

disk access 297

divide and conquer 73, 78

divide-and-conquer 237

domain 198, 273

doubly linked list 62

drop the ball 77

edge 245

efficiency 11

emit 287

equal 184

euclidean distance 282

exclusive or 207

extendible hashing 216

external sort 228

fair 99

fifo 99

filter 105, 280

first 37, 38

functional program 275

functor 71

garbage 32

geometric series 218

grammar 96

graph 245

greedy 257

half-adder 207

hash function 204

hash with buckets 212

hashing 204

hashset 197

heapsort 231, 241

heuristic 264

heuristic function 266

hill climbing 265

i/o buffer 297

immutable 32

in-place 230

infinite loop 41

infix 158

injective 273

inorder 158

insertion sort 229, 241

integer vs. int 32

interior node 112

internal sort 228

intersection 58, 79

introsort 241

introspective sort 241

inversion 230

isomorphism 277

language translation 194

leaf 112

length 39

lifo 83

linear probing 211

link 35, 112, 245

linked list 35, 95

linkedlist 109

list interface 107

list iteration 40

list recursion 44

list tail recursion 46

listiterator 110

load balancing 298

load factor 211

local maximum 265

locality 233, 234, 236

map 198

mapcan 279

mapcar 278

mapping 273, 278

mapreduce 283

mapreduce key 286

match 191, 192

matching 189

member 57

memoization 217

memory hierarchy 234

memory locality 233, 234, 236

merge 63, 79

merge sort 75, 232

minimum spanning tree 260

nconc 55

nested tree recursion 187

node 245

nreverse 56

null dereference 83

object 31

on-line 230

one-to-one 273

onto 273

ontology 119

optimization 194

order 12

pagerank 292

parentheses 93

parse tree 115

parsing 196

partition 237

path 245

pattern matching 189

pattern-pair 193

percolate 223

performance 11

pert chart 254

pivot 237

pointer 31

pointer equality 34

polish 158

pop 83

postfix 158

predicate 57

prims algorithm 261

priority queue 219

push 83

quadtree 170, 170

queue 99

quicksort 237

radix sort 242

random access 28, 86

randomization 218

range 198, 273

record 31

recursion 41, 41

recursive case 42

red-black tree 164

reduce 281

reference 31

reference type 31

rehash 211, 214

relaxation 292

rest 37, 38

reverse 48

root 112

routing 256

row-major order 236

runtime stack 89

search 146

self balancing tree 164

sentinel 84

separate chaining 212

set 57, 197

set difference 61

shadow 90

shortest path 256

side effect 84

side-effect 275

simple path 245

simulation 277

sort 75

sorting 228

sparse 176, 248, 249

splay tree 164

stable 230

stack 83, 95

stack frame 89

state 146

structure sharing 52, 54

substitution 181

surjective 273

symbol table 217

symmetric 250

syntax 96

tail recursion 47

tail recursive 46

taxonomy 118

topological sort 252

transform 193, 196

transformation 194

tree 112

tree recursion 135

tree rotation 166

treeset 197

two pointer queue 100

undirected 247

union 61

unparsing 196

vertex 245

well-founded ordering 41

xml 97

xor 207


CS 314