大话数据结构 - 串
1. 串的定義
串是由0個或多個字符組成的有限序列,也叫做字符串。串中 字符數目n稱為串的長度。
子串:串中任意個數的連續字符組成的子序列稱為該字符串的子串,包含該子串的串稱為主串。子串中的位置就是該子串第一個字符在主串中的序號。
2. 串的比較
計算機的字符串標準包括:ASCII碼和Unicode碼。其中ASCII由8位二進制組成,可以表達256個字符;Unicode由16位二進制組成,可以表達65536個字符。當然unicode前面256個字符與ASCII一致。
3. 串的抽象數據類型
串的邏輯結構和線性表很相似,不同之處在于串針對的是字符。
4. 串的存儲結構
串的存儲結構與線性表相同,分為兩種:順序存儲結構,鏈式存儲結構。
4.1 串的順序存儲結構
串的順序存儲結構使用數組來存儲,字符串的實際長度通可以存在數組的第一個位置,最后一個位置等。順序存儲結構的最大缺點在于字符串在進行一個操作,比如字符串合并等可能會導致溢出,字符串的長度超過數組長度。
4.2 串的鏈式存儲結構
串的鏈式存儲結構與鏈表類似,不同之處在于每個節點可能存儲多個字符。
5. 樸素的模式匹配算法
簡單的講,字符串匹配最簡單的目的就是找某個字符串中是否包含另外一個字符串,如果包含則返回位置。比如在Python中有這樣find函數來實現功能。
# -*- coding: utf-8 -*-str_m = "abaababaddecab" # 母串 str_s = "abad" # 子串pos = str_m.find(str_s)
6.KMP模式匹配算法
reference:
http://www.cnblogs.com/c-cloud/p/3224788.html
http://www.cnblogs.com/huangxincheng/archive/2012/12/01/2796993.html
總結
以上是生活随笔為你收集整理的大话数据结构 - 串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件工程导论课堂作业
- 下一篇: 【瑞利衰落信道】理论+模型+仿真