原创 數據結構與面向對象學習4 棧實現

關於棧的實現及相關應用: 首先, 用vector容器實現了一個簡單的stack結構,因爲stack 遵循LIFO(last in first out)的原理,因此,我們在建立stack的時候,直接在vector中插入元素(使用insert

原创 point 類

實現了一個point類,主要是熟悉C++ 中類的構造以及一些類的細節問題。 包括: 聲明自己的命名空間等。 首先:  point.h 代碼: #ifndef MAIN_MY_SPACE // 一定要大寫,否則後面會出現編譯錯誤,雖然目

原创 數據結構與面向對象學習1

第三章 容器類 首先,用VS2010出現LINK ERROR: fatal error LNK1123: failure during conversion to COFF:  解決辦法爲: 然後,寫了一個容器類:bag,該類是可以

原创 數據結構與面向對象學習2

一些小的知識點: 1. const: 1) 表示一個 declared constant, 意思是在程序運行中,該值永遠不會發生變化。 2) const 成員函數, const 可以放在成員函數的參數列表後面,表明該函數是一個常量成員函

原创 bit 操作

1. 將一個數轉爲二進制 (  一共8位),交換前後4位,得到新生成的數: #include <stdio.h> #include <iostream> #include <vector> using namespace std; in

原创 data structure -- tree

1. 層序遍歷: 遞歸方法: 先遍歷特定層。 level 指的是第幾層,從1開始。只打印當level == 1的節點,其餘全部忽略void print_single_level(TNode* root, int level) {

原创 list 基本操作 1 -- 創建,插入,刪除,計算長度

list 的基本操作,包括list 創建,插入,刪除,長度計算 ( 迭代和遞歸算法) //linked list study #include <stdio.h> #include <iostream> #include <vector

原创 廣度優先

1) word ladder 描述 Given two words (start and end), and a dictionary, find the length of shortest transformation sequen

原创 hashmap 模板實現

建立了一個hashmap類,該類的key必須大於0,用一個vector模擬hashmap. 寫了build, insert 和delete 的函數。 目前,採用的是鏈式hash,就是相同的key的元素存放在一個數組中,目前用STL庫中自

原创 什麼時候需要些析構函數

當我們聲明的class的構造函數中使用了new, 那我們需要在這個class析構的時候delete, 否則會造成內存泄露,此時,我們需要寫class 的析構函數,顯示delete掉指針。#include <stdio.h> #includ

原创 字符串API

實現了幾個字符串接口: 1) 求字符串長度: mystrlen 2) 複製字符串:mystrcpy 3)子字符串查找:mystrstr 4) 字符串轉整數:myatoi // OOD.cpp : 定義控制檯應用程序的入口點。 //

原创 對於遞歸的理解

雖然說遞歸可以用一個遞歸棧來表示程序的運行過程,但是我覺得遞歸如果用遞歸樹表示更加容易分析。 這裏引用一張國外的PPT,可以進一步看遞歸函數的調用過程: 這個程序對應的遞歸樹爲:

原创 BST樹的實現

二叉查找樹: binary search tree 該樹的節點是:value, leftchild, rightchild組成的。 程序中寫了: 1) 從vector容器中建立BST 2)BST中插入一個元素 3)BST中查找一個元素 4

原创 深度優先搜索

1) 迴文數分割: 例如:s = "aab", 分割結果爲:{["aa", "b"], ["a", "a", "b"]} bool ispalindrome(string s) { if(s.size() < 2) return

原创 二分查找

寫了幾個簡單的一維數組的二分查找算法: 二分查找建立在排序的數組上,算法的時間複雜度爲: lg(n), n爲數組長度。 寫了三個小算法: 1) binary_search是普通的二分查找,返回任意一個找到的位置; 2)binary_sea