單鏈表實現單詞索引表

2022-07-13 23:00:43 字數 1432 閱讀 4775

思路是把乙個大的鍊錶按照字母分為26個小表,每個小煉表中的單詞都以同乙個字母開頭。

下面是實現的程式,核心步驟都有注釋。

1 #include 2 #include 3 #include 

4 #include 5 #include 6

#define n 30

7 typedef struct word word;

1112

13 typedef struct node node;

18int insert(node **rootp,char *str);

19void print(node*rootp);

20int main (void)21

5051

52print(p1);

5354}55

int insert(node **rootp,char *the_word)

5688

89 wordlink=¤t_node->data;//

處理索引表中的字元和想要插入字元相等的情況

90while((current_word=*wordlink)!=null)

91//

在二級鍊錶中進行單詞的插入,先找到插入位置

9298

if(current_word!=null&&num==0)//

current_word不為空,且num為0,則word已經存在

99return -1

;100

101 new_word=(word*)malloc (sizeof

( word));

102if(new_word==null)

103return -1

;104

105 new_word->word=(char*)malloc(strlen(the_word)+1);//

給單詞分配空間

106if(new_word->word==null)

107return -1

;108

109 strcpy(new_word->word,the_word);//

插入單詞到二級鍊錶中

110 new_word->next=current_word;

111 *wordlink=new_word;

112return0;

113}

114void print(node*rootp)

115128 printf("

null\n");

129 printf("

%c-------%c\n\n

",tmp->letter,tmp->letter);

130 tmp=tmp->next;

131}

132133 }

鍊錶的實現 單鏈表 雙鏈表

鍊錶知識的引入 對於之前我們接觸到的陣列知識,要想儲存多個物件,首先想到的一定是物件陣列。但是陣列是乙個長度固定的線性結構,一旦內容不足或者過多,都會在成記憶體資源的浪費,由此引入鍊錶充分解決資源浪費問題。class node private屬性需要設定getter setter方法 public ...

學生表 用單鏈表實現

定義乙個包含學生資訊 學號,姓名,成績 的單鏈表,使其具有如下功能 1 根據指定學生個數,逐個輸入學生資訊 2 逐個顯示學生表中所有學生的相關資訊 3 根據姓名進行查詢,返回此學生的學號和成績 4 根據指定的位置可返回相應的學生資訊 學號,姓名,成績 5 給定乙個學生資訊,插入到表中指定的位置 6 ...

單鏈表實現

單鏈表 1 邏輯上連續,位置上可以不連續的儲存方式。2 單鏈表由無數個結點組成,每個結點由資料段和指標域組成,資料段儲存資料,指標域儲存後繼的位址。3 每個結點最多有乙個前繼和乙個後繼。4 其中第乙個結點沒有前繼,所以我們通常建立乙個頭結點來儲存他的位置,其中頭結點的資料段我們不關注。5 最後乙個結...