嚴蔚敏 串 串的表示和實現 串的應用舉例

2021-10-02 11:35:48 字數 3210 閱讀 7463

#include

#include

#include

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef

int status;

#define maxstrlen 255

typedef

unsigned

char sstring[maxstrlen +1]

;//0號存放串的長度

status concat

(sstring& t, sstring s1, sstring s2)

;//演算法4.2 用t返回由s和s2聯結而成的新串。若未截斷,則返回true,否則false。

status substring

(sstring& sub, sstring s,

int pos,

int len)

;//演算法4.3 用sub返回串s的第pos個字元起長度為len的子串

void

print_sstring

(sstring s)

;int

main()

status concat

(sstring& t, sstring s1, sstring s2)

for(i = s1[0]

+1; i <= s1[0]

+ s2[0]

; i++

) t[0]

= s1[0]

+ s2[0]

; t[t[0]

+1]=

'\0'

;return true;

}else

if(s1[0]

< maxstrlen)

for(i = s1[0]

+1; i <= maxstrlen; i++

) t[0]

= maxstrlen;

return false;

}else

t[0]

= maxstrlen;

return false;}}

status substring

(sstring& sub, sstring s,

int pos,

int len)

sub[0]

= len;

return ok;

}void

print_sstring

(sstring s)

printf

("\n");

}

#include

#include

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef

int status;

#define maxsize 100

typedef

struct

hstring;

status strassign

(hstring& t,

char

* chars)

;//生成乙個其值等於串常量chars的串t

intstrlength

(hstring s)

;//返回s的元素個數,稱為串的長度

intstrcompare

(hstring s, hstring t)

;//若s>t,則返回值》0;若s=t,則返回值=0;若sstatus clearstring

(hstring& s)

;//將s清為空串,並釋放s所佔空間

status concat

(hstring& t, hstring s1, hstring s2)

;//用t返回s1和s2聯結而成的新串

status substring

(hstring& sub, hstring s,

int pos,

int len)

;//1status strinsert

(hstring& s,

int pos, hstring t)

;//演算法4.4 串插入操作

void

print_hstring

(hstring t)

;int

main()

status strassign

(hstring& t,

char

* chars)

int i;

char

* c;

for(i =

0, c = chars;

*c; i++

, c++);

if(!i)else

t.ch[j]

='\0'

; t.length = i;

}return ok;

}int

strlength

(hstring s)

intstrcompare

(hstring s, hstring t)

}status clearstring

(hstring& s)

s.length =0;

return ok;

}status concat

(hstring& t, hstring s1, hstring s2)

status substring

(hstring& sub, hstring s,

int pos,

int len)

else

sub.length = len;

sub.ch[sub.length]

='\0';}

return ok;

}status strinsert

(hstring& s,

int pos, hstring t)

return ok;

}void

print_hstring

(hstring t)

kmp演算法的實現,嚴蔚敏版本(除錯成功)

學資料結構時看書演算法編的 kmp演算法的實現,嚴蔚敏版本 除錯成功 code main.cpp include stdio.h include setting.h void main kmp operation.cpp include setting.h int index kmp sstring...

資料結構嚴蔚敏 稀疏矩陣的三元組表示

程式語言 c 編譯環境 dev c 題目 輸入稀疏矩陣,建立稀疏矩陣三元組順序結構,實現轉置 先來了解一下稀疏矩陣和三元組的關係 稀疏矩陣的概念是 乙個m行n列的矩陣,若它的非零元個數特別少,即可稱它為稀疏矩陣 如何進行稀疏矩陣的壓縮儲存呢?只儲存稀疏矩陣的非零元。除了儲存非零元的值a以外,還必須記...

嚴蔚敏資料結構之線性表的基本操作

源自嚴蔚敏老師的教材,最近學校剛上完資料結構中的線性表,敲了下基本操作,沒啥好說的,直接上 注 這是我隨手敲的,可能存在一些問題,僅供參考,僅供參考,僅供參考!include using namespace std define list init size 100 線性表儲存空間的初始分配量 de...