アルゴリズム:チェーンテーブル

2493 ワード

チェーンテーブルのいくつかのテーマを通じて、チェーンテーブルの基本的な操作の実現を理解して、再帰アルゴリズムの基本的な考え方を掌握して、しっかりしたプログラミング習慣を掌握します.
一、単一チェーンテーブルの基本操作
1.1、シングルチェーンテーブルノード定義
struct ListNode

{

    int value;

    ListNode *pNext;

};

 
1.2、末尾にノードを挿入する
void AddToTail(ListNode *pHead, int value)

{

    /*

     *        

     *               ,    

     */

    ListNode *node = new ListNode();

    node->value = value;

    node->pNext = NULL;



    ListNode *p = pHead;

    while (p->pNext != NULL)

    {

        p = p->pNext;

    }    

    p->pNext = node;

}

 
1.3、最初の値を含むノードを削除する
void RemoveNode(ListNode *pHead, int value)

{

    if (pHead->pNext == NULL)

    {

        return;

    }



    ListNode *p = pHead;



    while (p->pNext != NULL && p->pNext->value != value)

    {

        p = p->pNext;

    }



    if (p->pNext != NULL)

    {

        ListNode *p1 = p->pNext;

        p->pNext = p1->pNext;

        delete p1;

    }

}

 
二、ちょっと難しい問題
2.1、