Skip to content

C Interfaces and Implementations Techniques for Creating Reusable Software By David R. Hanson | Extractions of code in the book in a more readable format.

Notifications You must be signed in to change notification settings

rachelBonanno/HansonDataStructures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Hanson Data Structures

C Interfaces and Implementations Techniques for Creating Reusable Software By David R. Hanson
Extractions of code in the book in a more readable format.

Chapters Assigned in CS40@Tufts

Hanson: Ch. 1 & 2; Intro and First Section (titled "Interface") of Ch. 3-4, 7-9, 11; Section 8.2

Breakdown of Hanson Chapters

@@ Foundations @@
+ 1. Introduction
+ 2. Interfaces and Implementations
+ 4. Exceptions and Assertions
- 5. Memory Management
- 6. More Memory Management
@@ Data Structures @@
+ 7. Lists
+ 8. Tables
+ 9. Sets
- 10. Dynamic Arrays
+ 11. Sequences
- 12. Rings
- 13. Bit Vectors
@@ Strings @@ 
+ 3. Atoms
- 14. Formatting
- 15. Low-Level Strings
- 16. High-Level Strings
@@ Arithmetic @@
- 17. Extended-Precision Arithmetic
- 18. Arbitrary-Precision Arithmetic
- 19. Multiple-Precision Arithmetic
@@ Threads @@
- 20. Threads
! Interface Summary 
# starts on page 470 in textbook
# or you can look at the slide set linked below

http://cii.s3.amazonaws.com/book/pdf/quickref.pdf

Code in Book

+ Chapter 1

  double.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/double.c

+ Chapter 2

  arith.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arith.h
  arith.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arith.c
  stack.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/stack.c

+ Chapter 3

  atom.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/atom.h
  atom.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/atom.c

+ Chapter 4

  except.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/except.h
  except.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/except.c
  assert.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/assert.h
  assert.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/assert.c

- Chapter 5

  mem.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mem.h
  mem.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mem.c
  memchk.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/memchk.c

- Chapter 6

  arena.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arena.h
  arena.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arena.c

+ Chapter 7

  list.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/list.h
  list.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/list.c

+ Chapter 8

  table.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/table.h
  getword.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/getword.h
  getword.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/getword.c
  table.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/table.c

+ Chapter 9

  set.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/set.h
  set.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/set.c

- Chapter 10

  array.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/array.h
  arrayrep.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arrayrep.h
  array.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/array.c

+ Chapter 11

  seq.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/seq.h
  seq.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/seq.c

- Chapter 12

  ring.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ring.h
  ring.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ring.c

- Chapter 13

  bit.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/bit.h
  bit.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/bit.c

- Chapter 14

  fmt.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/fmt.h
  fmt.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/fmt.c

- Chapter 15

  str.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/str.h
  ids.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ids.c
  str.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/str.c

- Chapter 16

  text.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/test.h
  text.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/text.c

- Chapter 17

  xp.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/xp.h
  xp.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/xp.c

- Chapter 18

  ap.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ap.h
  calc.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/calc.c
  ap.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ap.c

- Chapter 19

  mp.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mp.h
  mpcalc.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mpcalc.c
  mp.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mp.c

- Chapter 20

  thread.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/thread.h
  sem.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/sem.h
  chan.h       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/chan.h
  sort.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/sort.c
  spin.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/spin.c
  sieve.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/sieve.c
  chan.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/chan.c
  thread.c       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/thread.c
  swtch.s       https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/swtch.s

! See David R Handsons GitHub for other code ! 

https://github.com/drh/cii

About

C Interfaces and Implementations Techniques for Creating Reusable Software By David R. Hanson | Extractions of code in the book in a more readable format.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published