Try   HackMD

2022q1 Homework1 (lab0)

contributed by < waig548 >

Requirements

  • Fork lab0-c on GitHub
  • Implementation
    • queue.{c}
      • Queue Container
      • q_new
      • q_free
      • q_insert_head
      • q_insert_tail -
        O(1)
      • q_remove_head
      • q_remove_tail
      • q_release_element
      • q_size -
        O(1)
      • q_delete_mid
      • q_delete_dup
      • q_swap
      • q_reverse
      • q_sort
      • q_shuffle
      • A dump yard for to-be-deleted nodes?
    • qtest
  • Use Address Sanitizer to detect and fix errors from qtest during runtim
  • Valgrind
    • Fix memory errors
    • Use Massif to visualize the memory usage during the simulation
  • Explain the usage of select system call in this program
  • Read the paper [Dude, is my code constant time?](Dude, is my code constant time?)
    • Explain how the "Simulation" mode verifies time complexity using experiments instad of theoretical analysis
    • Explain the Student’s t-distribution and the implementation

      Current implementation contains serveral defects,
      please try to point them out and propose solutions

  • Point out the defects in the current program, and make a pull request about them

Implementation

GitHub repo

queue.c