鍊錶 1 之單向動態鍊錶

2021-08-15 02:35:42 字數 1621 閱讀 3482

題目:多函式程式設計

struct word [char c[20]; struct word *next

函式1:一輸入一串單詞字串,假設每個單詞長度不超過19個字元,用空格隔開,把每個單詞資料存在乙個單向動態鍊錶(簡稱單詞鍊錶)裡的乙個節點。

struct word create word list()/生成鍊錶

void print word list(struct word head)//訪問輸出鍊錶的元素

函式2:在單詞鍊錶中查詢指定的單詞,找到第乙個則返回其是鍊錶第幾個節點值,否則返回0,

int serach word (struct word *head, char *w)

函式3:在單詞鍊錶中刪除指定單詞, struct*del_word( struct word *head,,char *w

函式4:主函式main()

1.用動態記憶體分配函式申請存放n個單詞空間,

輸入單詞「i am a good be you are a good girl」

/呼叫函式create word_list生成乙個動態鍊錶,分別存放了10個單詞。

/呼叫函式  print word list/呼叫函式

2.輸入需要查詢單詞

//呼叫函式 serach word,查詢指定單詞「i」,輸出查詢的結果

呼叫函式 serach word,查詢指定單詞「girl」,輸出查詢的結果

呼叫函式 serach word,查詢指定單詞「good」,輸出查詢的結果

3. 刪除指定單詞「good」,輸出新鍊錶的資料

4.刪除指定單詞 「i」輸出新鍊錶的資料。

5. 測試資料「 i am a good be you are a good girl

#include#include#define len sizeof(struct word)

struct word

;struct word*creat_word_list()//鍊錶的建立

else

p2=p1;

if(n>9) break;//九個單詞

p1=(struct word*)malloc(len);

scanf("%s",p1->c);

}p1->next=null;

return head;

}int serach_word(struct word*head,char*w)//查詢元素

n++;

p1=p1->next;

}return 0;

}struct word*del_word(struct word*head,char*w)//節點的刪除

if(n!=0&&strcmp(p1->c,w)==0) //當所要查詢的單詞不是開頭單詞時

else

n++;

} return p;

}void print_word_list(struct word*head)//鍊錶的輸出

鍊錶1 單向鍊錶

鍊錶中最簡單的一種是單向鍊錶,它包含兩個域,乙個資料域和乙個指標域,指標域指向鍊錶中的下乙個節點,最後乙個節點的指標域指向乙個空值 鍊錶最基本的結構是在每個節點儲存資料和到下乙個節點的位址,在最後乙個節點儲存乙個特殊的結束標記,另外在乙個固定的位置儲存指向第乙個節點的指標,有的時候也會同時儲存指向最...

單向動態鍊錶

什麼是鍊錶 鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。相比於線性表順序結構,操...

單向動態鍊錶

include include define ok 1 define error 0 define true 1 define false 0 typedef int status typedef int elemtype typedef struct lnode lnode,linklist 圖示...