CS 314: Data Structures: Lecture Notes


Copyright © 2012 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 34

a* 262

abstract syntax tree 109, 191

acyclic 241

adjacency list 245

adjacency matrix 246

adjacent 245

alist 78, 175

amortize 28

api 98

append 52

arc 241

array 82

array performance 231

arraylist 103

assoc 78, 175

association list 78, 175

associative 272

ast 109, 191

avl tree 160

b tree 162

backtrack 141

bag 192

balanced parentheses 89

balanced tree 159

base case 41, 42

big o 11

bijective 269

binary heap 216

binary tree 159

binding 175

binding list 175

boolean matrix 246

boxed integer 31

boxed number 32

branching factor 141

bucket 207

buffer 293

buffering 293

cache 210, 230

cambridge polish 153

car 37

cartesian product 241

cdr 37

child 107

circular linked list 62

circular queue 96

circularly linked list 62

clustering 200

collection 98, 192

collision 206

commutative 272

comparator 224

comparison 224

complete 216

complexity 11

cons 36

constructive 54

critical path 250

cycle 241

dag 243

dense 244

depth-first search 141

deque 104

design pattern 43, 47, 75, 130

destructive 54

dfs 141

digraph 243

dijkstra algorithm 253

directed 243

directed acyclic graph 243

disk access 293

divide and conquer 70, 75

divide-and-conquer 233

domain 193, 269

doubly linked list 62

drop the ball 74

edge 241

efficiency 11

emit 283

equal 179

euclidean distance 278

exclusive or 202

extendible hashing 211

external sort 223

fair 94

fifo 94

filter 100, 276

first 37, 38

functional program 271

garbage 32

geometric series 213

grammar 92

graph 241

greedy 253

half-adder 202

hash function 199

hash with buckets 207

hashing 199

hashset 192

heapsort 227, 237

heuristic 260

heuristic function 262

hill climbing 261

i/o buffer 293

immutable 32

in-place 226

infinite loop 41

infix 153

injective 269

inorder 153

insertion sort 225, 237

integer vs. int 32

interior node 107

internal sort 223

intersection 58, 76

introsort 237

introspective sort 237

inversion 226

isomorphism 273

language translation 189

leaf 107

length 39

lifo 79

linear probing 206

link 35, 107, 241

linked list 35, 91

linkedlist 104

list interface 102

list iteration 40

list recursion 44

list tail recursion 46

listiterator 105

load balancing 294

load factor 206

local maximum 261

map 193

mapcan 275

mapcar 274

mapping 269, 274

mapreduce 279

mapreduce key 282

match 186, 187

matching 184

member 57

memoization 212

memory hierarchy 230

memory locality 229, 230

merge 63, 76

merge sort 72, 228

minimum spanning tree 256

nconc 55

nested tree recursion 182

node 241

nreverse 56

null dereference 79

object 31

on-line 226

one-to-one 269

onto 269

ontology 114

optimization 189

order 12

pagerank 288

parentheses 89

parse tree 110

parsing 191

partition 233

path 241

pattern matching 184

pattern-pair 188

percolate 218

performance 11

pert chart 250

pivot 233

pointer 31

pointer equality 34

polish 153

pop 79

postfix 153

predicate 57

prims algorithm 257

priority queue 214

push 79

quadtree 165, 165

queue 94

quicksort 233

radix sort 238

random access 28, 82

randomization 213

range 193, 269

record 31

recursion 41, 41

recursive case 42

red-black tree 159

reduce 277

reference 31

reference type 31

rehash 206, 209

relaxation 288

rest 37, 38

reverse 48

root 107

routing 252

row-major order 232

runtime stack 85

search 141

self balancing tree 159

sentinel 80

separate chaining 207

set 57, 192

set difference 61

shadow 86

shortest path 252

side effect 80

side-effect 271

simple path 241

simulation 273

sort 72

sorting 223

sparse 171, 244, 245

splay tree 159

stable 226

stack 79, 91

stack frame 85

state 141

structure sharing 52, 54

substitution 176

surjective 269

symbol table 212

symmetric 246

syntax 92

tail recursion 47

tail recursive 46

taxonomy 113

topological sort 248

transform 188, 191

transformation 189

tree 107

tree recursion 130

tree rotation 161

treeset 192

two pointer queue 95

undirected 243

union 61

unparsing 191

vertex 241

well-founded ordering 41

xml 93

xor 202


CS 314