資料結構 學習資料結構的學習筆記之串

2021-06-21 20:59:37 字數 1592 閱讀 2129

計算機中對非數值處理基本上為字串資料,對於字串的處理要比數值處理難度大,因而更為重要!

串的定義、長度、相等等就不提啦。對串的最小操作集是:

1、串賦值:strassgin

2、串比較:strcompare

3、求串長:strlength

4、串聯接:concat

5、求字串:substring

其他操作均可以在以上操作集上實現,例如利用判等、求子串和求串長等即可實現定位函式index(s,t,pos),演算法的基本思想就是:在主串中取從第i(i的初值為pos)個字元起、長度和串t相等的子串和t相比較,相等則說明i即為所求,返回;否則增加i,直至串s中不存在和串t相等的子串為止!

串的表示及實現:

1、定長順序儲存表示

#define  maxstrlen  255

typedef  unsigned char  sstring[maxstrlen + 1];  //0號單元儲存字串的長度

ps: 下標為0的陣列分量儲存字串的長度;串值的後面並沒有表示結束的『\0』,因此顯然利於某些串的操作

2、堆分配儲存表示

type  structhstring;

下面是基於堆分配儲存表示的基本操作函式的實現:

status  strassign(hstring  &t,  char  *chars)

else

return  ok;

}//strassign

itn  strlength(hstring  s)

//strlength

int  strcompare(hstring  s,  hstring  t)

return  s.length - t.length;

}//strcompare

status  clearstring(hstring  &s)

s.lenght  =   0;

return  ok;

}//clearstring

status  concat(hstring  &t,  hstring  s1,  hstring  s2)

//concat

status  substring(hstring  &sub,  hstring  s,  int  pos,  int  len)

//空串

else

return  ok;

}//substring

以上即串操作基於堆分配儲存的基本操作,串的儲存還有另外一種表示方式,即串的塊鏈儲存表示!由於其操作比較複雜,我也是剛接觸資料結構,在此不再引出。對於串還有比較重要的匹配模式演算法:

int  index(sstinrg  s,  sstring  t, int  pos)

//比較後續字元

else    //指標退後重新比較 }

if(j > t[0])   return  i - t[0];

else    return  0;

}//index

以上就是本文所講的內容了,希望大家批評指正,這也是第一次發博文,還望各位大俠不吝賜教!

(文基本操作出自我們正在學習的課本,這是第二遍看時的筆記)

資料結構學習筆記

資料結構概述 定義我們如何把現實中大量而複雜的問題以特定的資料型別和特定的儲存結構 儲存到主儲存器 記憶體 中,以及在此基礎上為實現某個功能 比如查詢摸個 元素,刪除某個元素,對所有元素進行排序 而執行的相應操作,這個相應 的操作也叫演算法 資料結構 個體 個體的關係 演算法 對儲存資料的操作 演算...

資料結構學習筆記

資料結構學習筆記 程式 資料結構 演算法 資料結構 資料 結構 結構的本質是關係 資料之間的關係從不通風層面上分為邏輯關係和物理關係 演算法的設計要依據資料的邏輯關係 演算法的實現要依據資料的物理關係 物理關係是邏輯關係的基礎和載體 演算法實現時需要先依據問題抽象出資料模型,即初步確定待處理資料的邏...

資料結構 學習筆記

一 鍊錶 1 基本特徵 記憶體節點是不連續的,節點之間通過指標彼此關聯。2 基本操作 追加 插入 刪除 遍歷 偽隨機訪問!3 實現要點 1 追加 新建節點存放資料,令新節點的前指標指向當前尾節點,新節點的後指標為null,令當前尾節點的後指標指向新節點,尾指標指向新節點。考慮在空煉表中追加第乙個節點...