資料結構 堆儲存結構的串原子操作實現

2021-09-25 03:13:51 字數 559 閱讀 1024

使用堆儲存結構的串的長度任意,比使用順序儲存結構的串更加靈活易用

#include #include //串的堆分配結構

typedef struct hstring;

typedef int status;

#define ok 1

#define error 0

//串的複製

status strassign(hstring &t, char *chars)

int length = 0; //用於記錄chars的長度

for(char *c = chars; *c; c++, length++); //計算串chars的長度

if(!length) else

for(int i=0; it,則返回值》0,若s=t,則返回0,所ss.length || len > s.length-pos+1)

if(sub.ch)

if(!len) else

sub.length = len;

}return ok;

}

資料結構 串的儲存結構

定長資料串基本操作 插入位置pos將串分為兩部分 有三種情況 情況一 插入後總長大於原長 情況二 插入後總長等於原長 第三種 小於 串的模式匹配 目的 主要是消除了主串指標的回溯,從而使演算法效率有了某種程度的提高。kmp演算法引入了乙個next陣列 next i 表示的是前i的字元組成的這個子串最...

資料結構 堆的操作

堆是指乙個完全二叉樹,它的某個結點的值總是不大於,或不小於其父節點的值,堆分為大堆和小堆,小堆堆頂元素一定是最小的,堆頂到每個葉子結點的路徑是公升序的,大堆則相反。堆的操作主要包括堆的建立,插入元素,刪除元素,返回堆頂元素等操作,其中,堆的建立要用到向下調整演算法,插入要用到向上調整演算法,具體操作...

資料結構 堆

最大堆 最小堆 堆的定義是 n個元素的序列,當且僅當滿足如下關係時被成為堆 1 ki k2i 且 ki k2i 1 或 2 ki k2i 且 ki k2i 1 i 1,2,n 2 當滿足 1 時,為最小堆,當滿足 2 時,為最大堆。若將此序列對應的一維陣列堪稱是乙個完全二叉樹,則2i和2i 1個節點...