資料結構程式設計

2021-09-17 23:39:52 字數 2500 閱讀 5163

1、陣列部分

雜湊表思想:

雜湊表也稱為雜湊表,是演算法終於時間和空間作出權衡的經典例子。

當乙個表所有的鍵都是小整數時,便可以使用乙個陣列來實現無序的符號表,將鍵作為陣列的索引而陣列i中所儲存的值就是該鍵所對應的鍵值,即key-value對應。

雜湊表的思想也是這樣子的,只是雜湊表的鍵的型別更為複雜而已。

使用雜湊表(雜湊查詢)分為兩步:

用雜湊函式將被查詢的鍵轉換為陣列的乙個索引。理想情況下,不同的鍵值都會轉換成為不同的索引值,但是一般情況下我們會遇到多個鍵對應相同的索引值,這也就是所謂的雜湊衝突。

c++陣列自動擴容(動態陣列)、有序陣列動態增刪改

public class myarray

public void add(int index,int num)

public void update(int index,int num)

public void resize(int p)    

}int main()

;int b = ;

mergearray(a, b, 5, 3);

for (int i = 0; i < 3 + 5; i++)

return 0;

}description

example:

input: 19

output: true

explanation:

12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1escription

class solution 

n = sum;

}return true;

}};

2、字串部分

trie字典樹的基本概念

trie樹是一種雜湊樹的變種,又稱字典樹,單詞查詢樹或者字首樹,用於儲存大量的字串,是一種用於快速檢索的多叉樹結構(如英文本母的字典樹是乙個26叉樹,數字的字典樹是乙個10叉樹)。

trie字典樹主要用於儲存字串,trie 的每個 node 儲存乙個字元。用鍊錶來描述的話,就是乙個字串就是乙個鍊錶。每個node都儲存了它的所有子節點。

// trie.cpp : 定義控制台應用程式的入口點。

//trie 稱為字典樹,單詞查詢樹或者字首樹

#include "stdafx.h"

#include

#include

using namespace std;

const int max_num = 26;

//trie 樹的結點型別

struct node

;//trie 樹型別

class trie

;trie::trie ()

trie::~trie ()

node* trie ::createnewnode( char ch )//建立乙個新的結點

return new_node ;

}void trie ::inittrie() //構建一棵空樹

int trie ::chartoindex( char ch )

int trie ::find( const char chars, int len )

node* ptr = root;

int i = 0;

while(i < len)

ptr = ptr ->child[ chartoindex(chars [i])];

i++;

}return (i == len) && ( ptr->completed == true);

}void trie ::insert( const char chars, int len ) //向 trie樹中插入長度為len的字串

ptr = ptr ->child[ chartoindex(chars [i])];

}ptr->completed = true;

}void trie ::delete() //利用遞迴刪除整棵樹

void trie ::deletetree( node *&root )//利用遞迴刪除整棵樹 注意此處應該加上應用

for (int i=0; ichild[ i] != null )

}//   if(root->ch == ' ')

//  

else

}if (j == lent)

else

}int main()

else

return 0;

}本文參考及學習資料:

資料結構程式設計學習/

雜湊表設計思想及實現:

資料結構與演算法(十一)trie字典樹 

程式設計 資料結構

乙個優秀的程式設計師的基礎是什麼?資料結構和演算法。其實程式還有另外乙個定義 程式 資料結構 演算法 其實在計算機還沒發明之前,前人們是怎麼去做一件事的?操作手冊,其實操作手冊沒有把資料結構和演算法分開,比如根據操作手冊炒乙個菜 第一步 倒入50克菜油 第二步 加入5克食鹽 第三步 倒入300克青菜...

資料結構幾道程式設計題

先將其中乙個鍊錶的鏈頭按到另乙個鍊錶的尾部,如果他們有交集則會構成乙個環,題目等價於找鍊錶中的環的起始結點。找到後將鍊錶還原。一.兩個長鍊表求交點 考慮環 public listnode getintersectionnode listnode heada,listnode headb listno...

核心程式設計的資料結構

一 資料型別 1.字串 typedef struct unicode string ushort length 字串的長度 所佔的位元組數 ushort maxinumlength 字串緩衝區的長度 所能佔的最大位元組數 pwstr buffer 字串緩衝區 字串的位址,也即指標 unicode s...