データ構造中のチェーン表を関数パラメータとして渡します.

940 ワード

最近はデータ構造を勉強していますが、線形構造ではチェーンテーブルが一番よく使われています.そこで、チェーンテーブルの基本操作について自分で実現し始めました.
InitList、InsertList、deletelist、destroylist、GetElemList、locateList、etc.私は率先ノードチェーン表を作成し、頭ポインタを関数パラメータとしてチェーン伝達します.
States InitList(Node *L){
	L = (Node *)molloc( sizeof( Node_DATA ) );
	L->next = NULL;
}
実際、私がInitListを引用してチェーン関数を初期化すると
Node *newlist;
InitList( newlist );
newlistはmolloc申請の空間を指していません.パラメータが指針であっても、その本質は値伝達であり、私の本意はチェーンの中のポインタを内容に向けて変更したいので、ポインタの住所をパラメータとして伝える必要があります.つまり、函数のパラメータが二次ポインタならば.
States InitList(Node **L){
	*L = (Node *)molloc( sizeof( Node_DATA ) );
	(*L)->next = NULL;
}
参照
Node *newlist;
InitList( &newlist );
これでいいです.