資料結構(嚴蔚敏)串順序結構

2021-04-12 11:55:42 字數 1771 閱讀 5778

/* c1.h (程式名) */

#include

#include

#include/* malloc()等 */

#include/* int_max等 */

#include/* eof(=^z或f6),null */

#include/* atoi() */

#include/* eof() */

#include/* floor(),ceil(),abs() */

#include/* exit() */

/* 函式結果狀態** */

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

/* #define overflow -2 因為在math.h中已定義overflow的值為3,故去掉此行 */

typedef int status; /* status是函式的型別,其值是函式結果狀態**,如ok等 */

typedef int boolean; /* boolean是布林型別,其值是true或false */

/* c4-1.h 串的定長順序儲存表示 */

#define maxstrlen 40 /* 使用者可在255以內定義最大串長(1個位元組) */

typedef char sstring[maxstrlen+1]; /* 0號單元存放串的長度 */

/* bo4-1.c 串採用定長順序儲存結構(由c4-1.h定義)的基本操作(14個) */

/* sstring是陣列,故不需引用型別。此基本操作包括演算法4.2,4.3,4.5 */

status strassign(sstring t,char *chars)

}status strcopy(sstring t,sstring s)

status strempty(sstring s)

int strcompare(sstring s,sstring t)

status clearstring(sstring s)

status concat(sstring t,sstring s1,sstring s2) /* 演算法4.2改 */

else

}status substring(sstring sub,sstring s,int pos,int len)

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

else /* 指標後退重新開始匹配 */

if(j>t[0])

return i-t[0];

else

return 0;

}else

return 0;

}status strinsert(sstring s,int pos,sstring t)

status replace(sstring s,sstring t,sstring v)

}while(i);

return ok;

}void destroystring()

void strprint(sstring t)

void get_next(sstring t,int next)

else /* 模式串向右移動 */

j=next[j];

if(j>t[0]) /* 匹配成功 */

return i-t[0];

else

return 0;

}void main()

資料結構 嚴蔚敏

最近一直想找一本純資料結構的書來學習,找來找去都沒有找到一本合適的書籍,相比之下國內的書籍之中,嚴蔚敏和吳偉民的還算是經典版了,很多國內其他資料結構教材都參考這本書的。但缺點是很多都是偽 對程式設計初學者來說有一些難度,甚至有些考研的同學來看這本書有很多還看不懂,並且裡面也有些容易迷惑人的地方。出於...

資料結構(嚴蔚敏)

說起為什麼重新拿起這本書,著實非常慚愧。是因為面試的時候,第一個面試官面試完專案之後。第二面試官說我們就當聊聊天,考考資料結構,演算法就好了。結果以一個問題就把我難住了,這個問題是 雜湊表是什麼?所以我打算花兩天的時間重新把這本書看一遍,並做下筆記,這次我一定會記住。目前,計算機已深入到社會生活的各...

資料結構(嚴蔚敏)陣列順序表

c1.h 程式名 include include include malloc 等 include int max等 include eof z或f6 null include atoi include eof include floor ceil abs include exit 函式結果狀態 d...

佇列順序結構C C 實現 資料結構嚴蔚敏版

includeusing namespace std 定義4個空間,留出一個作為標誌位,當q.rear 1 maxqsize q.front時,說明佇列已滿 define maxqsize 4 define ok 1 define error 0 define flow 0 typedef int ...

資料結構 堆(摘自嚴蔚敏《資料結構》)

堆是一顆完全二叉樹,並且是完全二叉樹中所有非終端節點的值均不大於 或不小於 其左 右孩子節點的值。堆的性質 第一個元素總是最大或者最小 可以在對數時間內增加或者刪除一個元素 若在輸出堆頂元素之後,使得剩餘的n 1個元素的序列又重新建成一個堆,則得到n個元素中的次小值。如此反覆,邊能得到一個有序序列,...