當前位置:
首頁 >
在无头单链表的一个非头节点前插入一个节点(C语言)
發布時間:2024/9/27
40
豆豆
生活随笔
收集整理的這篇文章主要介紹了
在无头单链表的一个非头节点前插入一个节点(C语言)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
①時間復雜度為N:
void InsertNotHead(PSListNode pHead, PSListNode pos, DataType data) {PSListNode pPreNode = pHead;PSListNode pPreNode = pHead;if (NULL == pos){return;}else{//先找到pos結點前面的結點while(pCurNode != pos){pPreNode = pCurNode;pCurNode = pCurNode->pNextNode;}PSListNode pNewNode = ByeNode(data);if (NULL == pNewNode){printf("開辟結點空間失敗!\n");return;}else{//把插入的結點插入pos前面的結點與pos結點之間pPreNode->pNextNode = pNewNode;pNewNode->pNextNode = pCurNode;}} }②時間復雜度為1:
void InsertNotHead(PSListNode pos, DataType data) {if (NULL == pos){return;}else{PSListNode pNewNode = ByeNode(data);if (NULL == pNewNode){printf("開辟結點空間失敗!\n");return;}else{//交換pos和pNewNode的數據(相當于交換了兩個結點的位置),使問題轉換為在pos指向的結點的下一個結點處插入新結點pNewNode->data = pos->data;pos->data = data;pNewNode->pNextNode = pos->pNextNode;pos->pNextNode = pNewNode;}} }總結
以上是生活随笔為你收集整理的在无头单链表的一个非头节点前插入一个节点(C语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 长安渝北工厂机器人_长安UNI-T智能工
- 下一篇: 重载函数编译后的新名字