C:メモ:チェーンテーブル可変配列
998 ワード
チェーンテーブル
各ノードは、値とポインタを含む構造です.ポインタは別の構造を指します.
また、チェーンテーブルを使用する場合は、このチェーンテーブルを指す構造を定義します.
チェーンテーブルで検索:
削除:
mallocが出てきたものは最後にfree
何をするにしても、境界状況を考慮し、コードの実行を安全にしなければならない.
各ノードは、値とポインタを含む構造です.ポインタは別の構造を指します.
// struct _node , typedef Node, 。
typedef struct _node{
int value;
struct _node *nest;
} Node;
また、チェーンテーブルを使用する場合は、このチェーンテーブルを指す構造を定義します.
typedef struct _list {
Node* head;
} List;
チェーンテーブルで検索:
int isFound = 0;
for ( p = list.head; p; p = p->nest )
{
if (p->value = number)//number
{
isFound = 1;
break;
}
}
削除:
Node *q;
for (q = NULL, p = list.head; p; q = p, p = p->next)
{
if(p->next == number )
{
if(q)
{
q->next = p->next;
}
else
{
list.head = p->next;
}
free(p);
break;
}
}
mallocが出てきたものは最後にfree
for (p = head; p; p = q)
{
q = p->next;
free(p);
}
何をするにしても、境界状況を考慮し、コードの実行を安全にしなければならない.