求两个已排序单链表中相同的数据(C语言)
生活随笔
收集整理的這篇文章主要介紹了
求两个已排序单链表中相同的数据(C语言)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PSListNode ByeNode(DataType data)
{PSListNode pNewNode = (PSListNode)malloc(sizeof(struct SListNode));if (NULL != pNewNode){pNewNode->data = data;//注意使開辟的新節點的指向為空pNewNode->pNextNode = NULL;}return pNewNode;
}PSListNode UnionSet(PSListNode pL1, PSListNode pL2)
{PSListNode PSList1 = pL1;PSListNode PSList2 = pL2;PSListNode pNewHead = NULL;PSListNode pNode = NULL;//每次比較兩個鏈表頭指針指向的數據是否相等,不相等,就讓數據小的頭指針后移,相等,則把該數據保存起來,//兩個頭指針同時后移,直到其中一個指向空為止while ((NULL == PSList1) || (NULL == PSList2)){if (PSList1->data > PSList2->data){PSList2 = PSList2->pNextNode;}else if (PSList1->data < PSList2->data){PSList1 = PSList1->pNextNode;}//用一個新的鏈表來保存兩個鏈表中相同的數據else{if (pNewHead == NULL){pNewHead = ByeNode(PSList1->data);pNode = pNewHead;PSList1 = PSList1->pNextNode;PSList2 = PSList2->pNextNode;}else{pNode = pNode->pNextNode;pNode = ByeNode(PSList1->data);PSList1 = PSList1->pNextNode;PSList2 = PSList2->pNextNode;}}}return pNewHead;
}
總結
以上是生活随笔為你收集整理的求两个已排序单链表中相同的数据(C语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 窄带语谱图c语言算法,MELP语音编码算
- 下一篇: 不同类型的变量与零值比较的方法