[Home]

# CS 223 - Spring 2017. 4/10

## Welcome to CS 223!

### Larry Wall Quote of the day

By and large, I try not to do anything unless I have several reasons to do it. (But they don't all have to be good reasons.)

### Logical problem of the day

lp0410.c
```#include <stdio.h>

#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};

int main()
{
int d;

printf("TOTAL_ELEMENTS: %lu\n", TOTAL_ELEMENTS);
// version 1:
for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
printf("%d\n",array[d+1]);
/*
// version 2:
for(d=0;d < (TOTAL_ELEMENTS);d++)
printf("%d\n",array[d]);
*/

return 0;
}
```
The expected output of the above C program is to print the size of the array followed by the elements in the array. What is going on here?

## Lecture 20: Data Structures: red black trees + Dynamic Programming

• Office hours:
The office hours are Sun/Tue/Thu 8-11 PM at Hillhouse 17 Rm 111.
• My office hours this week are Wednesday 3-5pm.

• The ta's have posted a poll on piazza to solicit topics for review sessions. Check it and fill it.

### Assignment 6

Problem set 6

### Assignment 7

Problem set 7

### Final Exam

In class on Monday April 24th. Topics for final exam and Sample questions for final exam (from last year) (No 2-3, 2-4 trees, which are actually sub-types of B trees.)

### Lecture Starts Here

#### Red Black Trees

• Aspnes: red black trees
• Red Black tree != AVL tree:
• Red black trees. Introduction Animation C++ Implementation rb.cpp
• C++
• Mostly a superset of C. It is difficult, but not impossible, to write legal C code that is not legal C++.
• Object oriented: classes, constructors (new, not malloc), destructors, encapsulation (private, protected, public), inheritance, polymorphism, operator overloading.
• I/O streams
• Templates
• Exception handling
• Standard Library - better designed than C's.

#### B Trees

• Data Structure Visualizations
• Aspnes: B trees
• https://en.wikipedia.org/wiki/B-tree
• https://en.wikipedia.org/wiki/B+ tree

#### Dynamic Programming

• Aspnes: Dynamic Programming
• fib.c after Aspnes. Uses array instead of hash table.
• lis.c lis_test.c longest increasing subsequence, from Aspnes.
[Home]