這裡的**不是源**。
給定字串用陣列鍊錶表示,每個鍊錶節點有4個字元的空間。求:index():確定模式串在第幾塊的第幾個位置;substr(m,n):求從m位開始n長度的字串。
3.1 結構體以及函式宣告
1//用#表示空元素
2 typedef struct
node
3 node;
7 node *create(node *head, char str, int lens); //
建立串8
void display(node *head); //
列印塊鏈形式的串
9void index(node *head, char
dst);
10void substr(node *head, int m, int n);
3.2 主函式
1void
main()
2
3.3 將字串儲存在陣列鍊錶中
1 node *create(node *head, char str, intlens)220
if(4*i+j//
新建鍊錶節點
2127}28
return
head;
29 }
3.4 列印
1void display(node *head)
210 }
3.5 index()
1void index(node *head, char
dst)214
//失敗則回退到初始位置的下乙個字元
15else
1623
if(i>3) //
移位24
28if(k>3) //
回退位置變為下乙個鍊錶節點
2933}34
//確定lump和site的值
35if(tsite%4==0)36
40else
4145 printf("
首位置在第%d塊(從1開始)中,下標(從0開始)為%d處\n
", lump, site);
46 }
3.6 substr()
1void substr(node *head, int m, intn)2
24}25}
26puts(clu);
27 }
串(字串) 特殊的線性表
串是一種特殊的線性表,其資料元素僅僅由乙個字元組成,計算機非數值時處理的物件經常是字串資料 1.串的概念串是由零個或多個任意字元組成的字串行 2.串的術語 3.串的儲存方式 對串的儲存方式取決於我們對串的運算。如果只是輸入或輸出常量出現,則需要儲存該串的字串行 3.1串的順序儲存 這種儲存方法可以直...
作業 線性表練習
1 1對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度分別對應為o 1 和o n 2分 t 1 2對於順序儲存的長度為n的線性表,刪除第乙個元素和插入最後乙個元素的時間複雜度分別對應為o 1 和o n 2分 f 1 3迴圈鍊錶不是線性表。2分 f 1 3答案正確 2 分 1 4順序儲存...
部落格作業2 線性表
定義變數n存放順序表長度,i,j 0控制迴圈,l 1存放子列長度,k,m,max存放最大子列長度,flag存放最長子列陣列下標,sum 0求和 scanf d n int a n 存放母列 b 100000 存放子列長度 for i 0 to n 輸入母列 end for for i 1 to n ...