Time of Update: 2018-07-26
基本概念 所謂完美雜湊函數,就是指沒有衝突的雜湊函數,即對任意的 key1 != key2 有h(key1) != h(key2)。 設定義域為X,範圍為Y, n=|X|,m=|Y|,那麼肯定有m>=n,如果對於不同的key1,key2屬於X,有h(key1)!=h(key2),那麼稱h為完美雜湊函數,當m=n時,h稱為最小完美雜湊函數(這個時候就是一一映射了)。
Time of Update: 2018-07-26
今天把this知識點做個匯總。 1.什麼是this 先要理解class的意思,class應該理解為一種類型,象int,char一樣,是使用者自訂的類型。(雖然比int char這樣build-in類型複雜的多,但首先要理解 它們一樣是類型)。用這個類型可以來聲明一個變數,比如int x, myclass my等。這樣就像變數x具有int類型一樣,變數my具有myclass類型。理解了這 個,就好解釋this了,my的this 就是指向my的指標。如果還有一個變數myclass
Time of Update: 2018-07-26
串由零個或多個字元組成,說白了就是字串。串的儲存方式相對於線性表來講有些不同,他分為以下幾種:順序儲存、堆分配儲存、鏈式儲存。順序儲存通常在數組中的頭元素存放字串長度。堆分配儲存通常會動態分配空間。鏈式儲存分為兩種,一種是每個節點存放一個字元(比較浪費空間),另一種則是每個節點存放多個字元,如果字元不是剛好,就用#代替。(c中字串定義會有以下幾種形式:字串常量"hello",char數組char m[40] =
Time of Update: 2018-07-26
hashtable.h #ifndef _HASHTABLE_H_#define _HASHTABLE_H_#define MinTableSize 10000#define Prime 10007typedef unsigned int Index;typedef Index Position;struct HashTbl;typedef struct HashTbl* HashTable;typedef int ElementType;typedef struct HashEntry
Time of Update: 2018-07-26
1.類模板定義: 在C++的Template中很多地方都用到了typename與class這兩個關鍵字,有時候這兩者可以替換,那麼這兩個關鍵字是否完全一樣呢。 事實上class用於定義類,在模板引入c++後,最初定義模板的方法為:template<class
Time of Update: 2018-07-26
類模板與函數模板的定義和使用類似。 有時,有兩個或多個類,其功能是相同的,僅僅是資料類型不同,如下面語句聲明了一個類: class Compare_int { public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x&
Time of Update: 2018-07-26
/*(1)採用下列方法之一建立二叉樹的二叉鏈表:① 輸入完全二叉樹的先序序列,用#代表虛結點(null 指標),如ABD###CE##F##,建立二叉樹的二叉鏈表。② 已知二叉樹的先序遍曆序列和中序遍曆序列,或者已知二叉樹的中序遍曆序列和後序遍曆序列,建立二叉樹的二叉鏈表。③ 將一棵二叉樹的所有結點儲存在一維數組中,虛結點用#表示,利用二叉樹的性質5,建立二叉樹的二叉鏈表。例如用數組a儲存的二叉樹的結點如下(0單元不用):
Time of Update: 2018-07-26
近來編寫幾個程式,很多都用到了數組。但是對於數組的大小卻是沒有固定的,也就是說可以更改數組大小,其大小是可以變化的。並不像初學時的那樣,告訴你一個範圍,你就必須取最大值以滿足要求。那樣可能就會浪費很多不必要的記憶體單元。那麼到底應該怎樣定義一個動態數組列。 在數組一章中,曾介紹過數組的長度是預先定義好的, 在整個程式中固定不變。C語言中不允許動態數群組類型。例如: int
Time of Update: 2018-07-26
#include <stdio.h>#include <stdlib.h>#define STACK_MAX_SIZE 30#define QUEUE_MAX_SIZE 30#ifndef elemType typedef char elemType;#endif/************************************************************************//* &
Time of Update: 2018-07-26
//二叉樹的順序儲存//這裡利用迴圈佇列儲存體資料//楊鑫#include <stdio.h>#include <math.h>#include <stdlib.h>#include <string.h>#define MAXQSIZE 5 // 最大隊列長度(對於迴圈隊列,最大隊列長度要減1) #define MAX_TREE_SIZE 100 // 二叉樹的最大結點數 #define ClearBiTree InitBiTree //
Time of Update: 2018-07-26
1.輸入輸出資料流 using std::cout;//標準輸出資料流 using std::endl;//換行 cout << em1.t->a; cout << endl; 2.結構體的聲明 在c++裡,不需要加struct 3.類的定義 類名稱前面加C,類成員前面加m_如果不加關鍵字public和“:”,預設為“private”,即如果你在main裡面用.調用他,就會報錯
Time of Update: 2018-07-26
/**********************************************************************************************************檔案說明: 【1】智能指標shared_ptr【2】記住:智能指標就是指標,例如:std::shared_ptr<int> obj===========int* obj,只不過,智能指標用new
Time of Update: 2018-07-26
資料結構之單鏈表(C語言實現) 本次迴圈單鏈表,迴圈單鏈表和普通單鏈表沒有什麼大的變化,只是最後一個節點的指標域指向了頭結點,所以對於迴圈單鏈表的操作有一點不同,主要在於判斷鏈表是否到達尾節點時由NULL變為了頭結點的地址。 迴圈單鏈表的特點和普通單鏈表沒有什麼區別,上一篇部落格中已經寫的很詳細了,這裡就不再贅述了。 然後從三個方面來介紹三種鏈表的通用操作: 1.鏈表的初始化 2.申請一個鏈表節點 3.鏈表的頭插法 4.鏈表的尾插法
Time of Update: 2018-07-26
#include<stdio.h>#include<malloc.h>#include<stdbool.h>/****鏈表節點的定義*/typedef struct Node{int data;//資料域struct Node * PNext;//指標域,存放下一個節點的地址} Node ,* PNode ;/****建立鏈表*/PNode create_list(){ int len,i; printf("請輸入鏈表的長度:len=\
Time of Update: 2018-07-26
之前的類都是都是和11.1一樣的 #include <iostream>#include <fstream>#include <cstdio>#include <ctime>//#include <vector>#include "vector.h"using namespace std;using namespace VECTOR;void main113(){int MaxStep=-999;int
Time of Update: 2018-07-26
標頭檔#ifndef LISt_H_#define LIST_H_#include<iostream>using namespace std;static const int max=10;template <class T>class List{T t[max];int n;public:List(){n=0;}void add(T a);bool isFull();bool isEmpty();void visit(void (*pf)(T
Time of Update: 2018-07-26
/************************************************************************************************************************檔案說明: C++的模板技術開發環境: Win10+VS2013+STL時間地點: 陝西師範大學 文津樓 2017.7.26作 者: 九 月****************************
Time of Update: 2018-07-26
#include<iostream> using namespace std;class LinkNode{public:LinkNode(int v):m_value(v),m_next(NULL){}LinkNode():m_next(NULL){}int m_value;LinkNode *m_next;};class LinkStack{public:LinkStack():m_top(NULL),m_size(0){}~LinkStack(){Clear();}void
Time of Update: 2018-07-26
標頭檔#ifndef PLORG_H_#define PLORG_H_const int limit=19;class plorg{private:char name[limit];int CI;public:plorg(const char *str="Plorga");void setCI(int n);void showplorg()const;};#endif #include<iostream>#include "plorg.h"
Time of Update: 2018-07-26
標籤:過程 組織 條件 重複 輸入 計算 == 約瑟夫問題 c++ #include<iostream>#include<cmath>using namespace