第二章 線性表-雙鏈表的操作2019-02-01

犯錯誤的地方:

1、雙鏈表的尾插發(fā)自己還想著跟在中間插入節(jié)點一樣的寫法,犯了很嚴(yán)重的錯誤,只需要這些代碼就能解決問題

pRear->pNext = s;

s->pPrior = pRear;

如果不是動手做自己并沒有意識到這樣。

2、結(jié)構(gòu)體中前一項人家給的是prior,自己習(xí)慣用的是pre,還是按照書上的說法來

3、在刪除和插入節(jié)點的時候都要對是否是在尾節(jié)點進(jìn)行操作進(jìn)行特殊處理,在做刪除操作的時候,是在寫完函數(shù)后才想到這一點,在追求正確率的路上,這是不應(yīng)該的。

void DoubleList::coutMSG(DLNode* pHead)

{

cout<<"輸出雙鏈表信息:"<<endl;

while (pHead->pNext!=NULL)

{

cout<<pHead->pNext->n<<endl;

pHead = pHead->pNext;

}

cout<<"輸出結(jié)束"<<endl;

}

void DoubleList::InitDLNode(DLNode *&pNode)

{

pNode = (DLNode*)malloc(sizeof(DLNode));

pNode->pNext = NULL;

pNode->pPrior = NULL;

}

void DoubleList::CreateeDBList(DLNode *&pHead,int num[],int n)

{

DLNode* s;

DLNode* pRear = pHead;

for (int i=0; i<n; i++)

{

InitDLNode(s);

s->n = num[i];

pRear->pNext = s;

s->pPrior = pRear;

// s->pNext = pRear->pNext;這兒記錄了尾插法自己在這兒添加如下代碼是多么的愚蠢,不是自己動手做,可能都沒意識到自己這兒會出這樣的問題

//? s->pPrior = pRear;

// if (pRear->pNext != NULL)

// {

// pRear->pNext->pPrior = s;

// }

// pRear->pNext = s;

pRear = pRear->pNext;

}

}


// 要刪除的節(jié)點所存儲的數(shù)據(jù)為n

void DoubleList::DeleteDLNode(DLNode *&pHead,int n)

{

DLNode* p = pHead->pNext;

while (p!=NULL)

{

if (p->n == n)

{

if (p->pNext != NULL) //第一時間沒有想到刪除節(jié)點的時候,需要加這個判斷語句,不能刪除尾節(jié)點的時候可能會報錯

{

p->pNext->pPrior = p->pPrior;

}

p->pPrior->pNext = p->pNext;

free(p);

break;

}

p = p->pNext;

}

}

// 在數(shù)據(jù)為n的節(jié)點后面插入節(jié)點pInsert

void DoubleList::InsertDLNode(DLNode *&pHead,int n,DLNode*& pInsert)

{

DLNode* p = pHead->pNext;

while (p!=NULL)

{

if (p->n == n)

{

if (p->pNext!=NULL)

{

pInsert->pNext = p->pNext;

pInsert->pPrior = p;

p->pNext->pPrior = pInsert;

p->pNext = pInsert;

}

else

{

pInsert->pPrior = p;

p->pNext = pInsert;

}

break;

}

p= p->pNext;

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容