cs106B
我~
!
展开
-
CS106B Section Solutions #1
Problem 1: Removing all occurrences of a character代码:#include <iostream>using namespace std;string CensorString1(string text, string remove);void CensorString2(string &text, string ...原创 2018-09-26 20:21:59 · 233 阅读 · 0 评论 -
CS106B Section Solutions #8
这章重点是树的操作,有树的遍历,判断树相等,删除叶子节点,平衡树,几乎都要用到递归Problem 1: Extending Editor Buffer解决将位置移到一段话中单词开头的问题数组的操作简单,单链表操作学习下套路,用curr 和prev 两个指针从head一步步遍历的方法//array implementationvoid Buffer::moveToWordBegi...原创 2018-10-20 11:25:27 · 229 阅读 · 0 评论 -
CS106B Section Solutions #9
Problem 3: Finding Graph Cycles采用深度优先搜索(递归),寻找图中是否存在循环之所以用currvisited和visited是因为可能图是非连通图,一次遍历不一定能遍历完所有的结点bool RecCyclicCheck(graphT & graph, nodeT * node, Set<nodeT *> & visited)...原创 2018-10-22 16:42:32 · 163 阅读 · 0 评论 -
CS106B Assignment #6: Priority Queue
制作自己的PQueue类pqueue:队列的拓展,有优先级的队列,即出队时 是先出优先级最大的。动手设计类的接口,并通过4种方式实现一. The interface基本是以下这些,还加个几个debug用的函数 class PQueue { public: PQueue(); ...原创 2018-10-22 13:21:47 · 395 阅读 · 0 评论 -
CS106B Section Solutions #5
这个section的练习都是有关时间复杂度的问题,咱们快速过一遍,最后一个算法题还是很有意思的Problem 1: Big-Oa) o(n^2)b) o(1)c) o(log2(n))d) o(2^n)Problem 2: Searching and Sorting公式为: cost of sort + (x * cost of binary searc...原创 2018-10-17 16:23:41 · 211 阅读 · 0 评论 -
CS106B Assignment #5:Sorting Lab
编写排序模版,支持数字,字符串,和整型set类的排序#include <iostream>#include "vector.h"#include "set.h"using namespace std;//预定义的比较函数模板template <typename Type>int OperatorCmp(Type one, Type two){ ...原创 2018-10-19 16:27:45 · 301 阅读 · 0 评论 -
CS106B Section Solutions #7
Problem 1: Client-side vs. Implementation-side:a) as the implementers去实现reverse操作,所以我们可以使用类中private的东西template <typename Type>void Stack<Type>::reverse(){ for(int lh = 0, rh = e...原创 2018-10-19 14:25:07 · 179 阅读 · 0 评论 -
CS106B Assignment #3
写在前面写了n多个递归问题,总结下:解决步骤:1. 把问题分解成可以递归的步骤:一个步骤的,递归里套一个递归(如计算n!) ;多个步骤的,套多个递归(如数字左右移动的,左走递归一次,右走递归一次)2. 确定递归结束条件,这个作为递归的结束符号,一定要想清楚,每种情况都要考虑到!3. 递归传递参数的确定,它可以是递归用的参数(可变,如 index 标签),也可以是之前设定的不变的...原创 2018-10-16 11:21:45 · 1030 阅读 · 0 评论 -
CS106B Section Solutions #4
Problem 1: Filling a Region回溯思想填空白#include <iostream>#include "vector.h"#include "grid.h"using namespace std;enum pixelStateT { White, Black };struct pointT { int row, col;};vo...原创 2018-10-15 20:20:41 · 215 阅读 · 0 评论 -
CS106B Assignment #4:Boggle
The game of Boggle任务地址:https://see.stanford.edu/materials/icspacs106b/H22-Assign4Boggle.pdf一个人机比赛的拼字游戏It's time for a CS106 classic, the venerable word game Boggle!核心部分还是递归,写多了真感觉大同小异;比较难的是九...原创 2018-10-18 20:14:27 · 1429 阅读 · 1 评论 -
CS106B Section Solutions #6
终于学到类的设计了Problem 2: A simple class设计一个简单的类class Rectangle{ public: Rectangle(int x, int y, double width, double height);//构造函数 ~Rectangle(); //析构函数 double getPrimeter(); //获取周...原创 2018-10-18 20:05:23 · 141 阅读 · 0 评论 -
CS106B Section Solutions #3
Problem 1: Set Callbacksa)int CompareEntry(entryT one, entryT two){if(one.lastName < two.lastName)return -1;else if(one.lastName > two.lastName)return 1;else if(one.firstName < two...原创 2018-10-15 12:06:40 · 191 阅读 · 0 评论 -
CS106B Assignment #2 Part A : Random writing
CS106B Assignment #2 Part A : Random writing and Markov models of language任务地址:https://see.stanford.edu/materials/icspacs106b/H16-Assign2ADTs.pdf基于马尔可夫链的随机文段产生,而且可以自己设置马尔可夫阶数#include <iostre...原创 2018-10-13 16:12:51 · 408 阅读 · 0 评论 -
CS106B Section Solutions #2
Problem 1: Vectors挑第二问写上来吧void RemoveSpan(vector<eMailMsg> &eMailMsg){ for (long i = eMailMsg.size()-1 ; i>=0; i--) //size zai jian shao if("SPAM" == eMailMsg[i].subject.su...原创 2018-10-13 11:16:42 · 185 阅读 · 0 评论 -
CS106B Assignment #7: Pathfinder
Pathfinder任务:给出一个存了地点和距离的文本,求出最短路径和最小生成树核心要解决的问题包括:graph类的设定,文件的输入,PQueue辅助类的建立(上节已做),最短路径的算法,最小生成树的算法1. Graph类使用了很多已有的数据结构,因为nodeT 和 arcT互相包含,所以要用前向引用。#ifndef MYPATHFINDER_GRAPH_H#def...原创 2018-10-23 19:23:45 · 544 阅读 · 0 评论