データ構造中のチェーン表を関数パラメータとして渡します.
940 ワード
最近はデータ構造を勉強していますが、線形構造ではチェーンテーブルが一番よく使われています.そこで、チェーンテーブルの基本操作について自分で実現し始めました.
InitList、InsertList、deletelist、destroylist、GetElemList、locateList、etc.私は率先ノードチェーン表を作成し、頭ポインタを関数パラメータとしてチェーン伝達します.
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 );
これでいいです.