重寫鍊錶
#include #include #include typedef struct data
data;
typedef struct node
node;
//建立鍊錶並初始化
struct node *createhead( node **head)
//頭插
int insert_tail(node *head,data data)
head->next=newnode;
newnode->next=null;
return 1;
}//列印函式
void print(data *data)
//列印所有資料
void dispaly(node *head)
}//刪除
int delete(node *head,data data)
head=head->next;
} return 1;
}//鍊錶長度
int length(node *head)
return i;
}int main()
;//給資料結構值
struct data data2=;
struct data data3=;
struct data data4=;
int i;
createhead(&head);
insert_tail(head,data1);
insert_tail(head,data2);
insert_tail(head,data3);
insert_tail(head,data4);
i=length(head);
printf("長度是%d\n",i);
dispaly(head);
printf("\n");
delete(head,data1);
dispaly(head);
return 0;
}
總結
之前學了鍊錶同時也用鍊錶寫了一些程式,但是這次重寫鍊錶我覺得我對鍊錶還是不懂,就連第一步鍊錶初始化都不會寫了。我想我對鍊錶的理解還是不夠,我還得努力去學他。
資料結構 七 棧
棧按照後進先出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料。棧是只能在某一端插入和刪除的特殊線性表。進行刪除和插入的一端稱棧頂,另一端稱棧底。插入一般稱為進棧,刪除則稱為退棧。棧也稱為後進先出表。用陣列模擬stack實現部分方法。陣列實現堆疊 auth...
資料結構 七 之集合結構
幾乎每種程式語言中,都有集合結構.集合比較常見的實現方式時雜湊表 後續會學習 我們這裡來實現乙個封裝的集合類.我們先來簡單認識一下集合的特點.集合的特點 看成一種特殊的陣列 集合的實現 像前面封裝其他資料型別一樣,我們也來封裝一下集合類 set類 建立集合類 操作的方法 我們來乙個個實現這些方法,相...
資料結構與演算法(七)
遞迴的高階應用 1.漢諾塔的問題 所有的盤子剛開始都放在塔座a上,要求將所有的盤子從塔座a移動到塔座c上,每次只能移動乙個盤子,任何盤子不能放在比自己小的盤子上。2.移動子樹 例 起始五個盤子在a,中間為b,需要移到c 可以首先將上邊四個移動到b,則a就剩乙個,只需一步a c 問題變為起始四個盤子在...