Course Notes, Practice Problems, and Solutions

Cone of Learning
Explaining end-of-file I/O
Google's C++ Style Guide
Java Coding Style Conventions
342/343 bottom-line Style Guidelines

Linux/computing information
Basic linux - commands and about crashing
How to transfer files and compile under linux
Video showing how to transfer files and compile under linux (from CSS 342)
Expand the tabs to blanks in Visual Studio 2017
Using clang on linux to expand tabs to blanks
Prof Pisan's wiki: C++, OS, IDE, etc. info

Reviewing paramater passing, pointers, and dynamic memory
Pass by value vs. pass byreference
Pointers and memory diagram
When an object has dynamic memory
Valgrind Information (memory checker)
Valgrind of a correct program: Valgrind example
Valgrind error explanation and memory leak: How valgrind works

Trees and Heaps
Binary Search Tree information
Huffman Encoding examples . . . Huffman breakout solution
Drawing execution tree . . . Binary tree breakout solution
BinTree execution tree example
Insert one item into a heap
Remove one item from a heap . . . Heap breakout solution
Building a Heap in O(n) time
Complexity of building a heap in O(n) time

Graphs
Graph Intro and Depth-First Search Algorithm . . . DFS lecture whiteboard
Dijkstra's Alg . . . Dijkstra's Alg performed . . . lecture whiteboard
Another Dijkstra example (Uses C[v][w] for the graph edge cost)
Dijkstra breakout problem . . . Solution
Breadth-first Search Algorithm and uses
BFS lecture whiteboard
Depth/Breadth breakout Solution

AVL Trees, B-trees, Tries
AVL Trees . . . AVL Right Left diagram
AVL insert and leftleft rotation code
Example AVL left-right rotation
Example AVL right-left rotation



Extra Practice Problems (at home) and Solutions

AVL Tree problems     ................... solution to #1 ..... solution to #2

Dijkstra shortest distance problem   ............... solution
Another Dijkstra problem   .................. solution
Another Dijkstra problem with solution (Uses C[v][w] for the graph edge cost)

Depth-first, breadth-first practice (start at one)  ....... DFS, BFS ordering (and DFS tree)
Graph problems     .......................... solutions

Heap problems     .......................... solutions
Huffman Encoding problems     .................. solution
Count the nodes at level n in a binary tree (root is at level zero). Sample main:
        BinTree T;
        T.buildTree(...);
        cout << T.numNodesAtLevel(4) << endl;
  .........   solutions