這些東西,重要的是節點的定義,他們的連線方式,剩下的就是實現了。
鍊錶的迴圈
定義乙個結構體指標,從head開始,一直next到最後的null,就是常用的鍊錶迴圈
for
( p = plist->head; p; p =p->next)
typedef
struct nodenode;
定義headnode *head = null;
怎麼往煉表內增加乙個新元素
node *p =
(node*
)malloc
(sizeof
(node));
//申請一塊新的節點,p是plus的意思
p->value = number;
p->next =
null
;在這裡插入**片
怎麼把之前最後的節點連上最新的節點
node *last = head;
//從第乙個開始
if( last )
//該函式出來之後就是最後節點了
// 下邊還有else
6.2 最後節點和最新的連線
last->next = p;
}else
把這個功能從主函式抽出來做函式
多做乙個結構來包含指向head的指標,這樣的話就能把head結構的位址傳入函式,從而能讓函式改變結構體的值。
保留修改要傳該值的指標進函式,*
void
add(list *plist,
int number)
;add
(&list, number)
;typedef
struct _list list;
做更多的功能函式,
for
( p = plist->head; p; p = q)
// 2020/2/13
//最簡單的鍊錶,最純粹的享受
//是看浙大的翁凱的mooc寫的,從那入門
#include
#include
typedef
struct _node node;
typedef
struct _list list;
void
add(list *plist,
int number)
;void
print
(list *plist)
;void
find
(list *plist)
;void
delete
(list *plist)
;int
main()
}while
( number !=-1
);print
(&list)
;find
(&list)
;delete
(&list)
;print
(&list)
;return0;
}void
add(list *plist,
int number)
//attach
last->next = p;
}else
}void
print
(list *plist)
}void
find
(list *plist)}if
(!isfound)
}void
delete
(list *plist)
else
} beforeit = it;}if
(isfound ==0)
else
}
這個編輯器有點用不慣,不過比那個富文字編輯器好用點…
不想寫串和陣列的結構啊啊啊啊…不過還是得寫吧,都實現一遍才能說學過了,估計得過兩天才能寫到樹了…
C語言資料結構第二章 靜態鍊錶
在很多時候需要根據此時的輸入來控制上乙個位置的引數 在輸入的時候,讀到 1結束,此時要讓上乙個陣列的cur指向0,可以 多用乙個temp存著上乙個陣列的下標,然後head temp cur 0 先判斷這個數有沒有結束,再讓data cur進入下乙個陣列位置head data cur cur定義節點,...
資料結構 C語言描述 第二章(1) 順序表
寫在前面 唉,我們學校通訊工程大二不學資料結構,實在無奈,只能自己硬補一發了。我看的是耿國華的書,不是很有名,但是還是比較實用的,每章當中的每種資料結構的基本操作我都會用c語言自己實現一遍,但是後面的習題我會挑著做,基本就是把一章中最難的做掉,剩下的隨便吧,下學期的課會有演算法,自己也會多看一點演算...
第二章 資料結構 二
知識點 trie樹 並查集,堆的操作 高效地儲存和查詢字串集合的資料結構 const int n 100010 int son n 26 cnt n idx 插入 void insert char str cnt p 以這個點結尾的字元數 查詢 intquery char str return cn...