reverse a singly linked list扭转单链表

reverse a singly linked list扭转单链表

ID:9286622

大小:32.46 KB

页数:14页

时间:2018-04-26

reverse a singly linked list扭转单链表_第1页
reverse a singly linked list扭转单链表_第2页
reverse a singly linked list扭转单链表_第3页
reverse a singly linked list扭转单链表_第4页
reverse a singly linked list扭转单链表_第5页
资源描述:

《reverse a singly linked list扭转单链表》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C/C++Interviewalgorithms1.DataStructure1.1.LinkedList1.1.1.ReverseasinglylinkedlisttypedefstructtagNODE{intiData;tagNODE*prNext;}NODE,*PNODE;//iterativeversionvoidReverseList(PNODE*pprHead){PNODEprHead;PNODEprTail;prHead=*pprHead;prTail=NULL;//while(prHead){PNODEprSave;//Savethe"next"nodeinth

2、elistprSave=prHead->prNext;//PointthecurrentnodeatthepreviousnodeprHead->prNext=prTail;//ThiswillbecomethepreviousnodeforthenextiterationprTail=prHead;//AdvancethecurrentnodeforthenextiterationprHead=prSave;}//Updatethenewheadpointer*pprHead=prTail;}1.1.2.Reversethepairsofelementsinasigledlin

3、kedlistvoidReverseListPair(PNODE*pprHead){PNODEptrPairPre=null;//1(head)->2----à3PNODEptrPairCurr=(*pprHead)->prNext;if(null==ptrPairCurr)return;//1(head)---->3(*pprHead)->prNext=ptrPairCurr->prNext;//2->(1)headptrPairCurr->prNext=*pprHead;//head=2:2(head)->1---à3*pprHead=ptrPairCurr;//2(head

4、)->1(pairPre)---à3ptrPairPre=ptrPairCurr->prNext;Page14of14C/C++Interviewalgorithms//2->1(pairPre)à3->4while(ptrPairPre->prNext&&ptrPairPre->prNext->prNext){//2->1(pairPre)à3->4(pairCurr)---à5ptrPairCurr=ptrPairPre->prNext->prNext;//2->1(pairPre)à3----->5ptrPairPre->prNext->prNext=ptrPairCurr

5、->ptrNext;//4(pairCurr)->3ptrPairCurr->ptrNext=ptrPairPre->prNext;//1(pairPre)à4(pairCurr)ptrPairPre->prNext=ptrPairCurr;//2->1à4->3(pairPre)---à5ptrPairPre=ptrPairCurr->prNext;}1.1.1.DeleteanodeindoublelinkedlistvoiddeleteNode(node*n){node*np=n->prev;node*nn=n->next;np->next=n->next;nn->prev

6、=n->prev;deleten;}1.1.2.Sortalinkedlist//sortingindescendingorderstructnode{intvalue;node*NEXT;}//AssumeHEADpointerdenotesthefirstelementinthelinkedlist//onlychangethevalues…don’thavetochangethepointers//thefollowingusesselectionsort,inwhichthe1stminimum,2ndminimum…//arefoundandmovetothefinal

7、positionsubsequentlySort(Node*Head){node*first,second,temp;first=Head;while(first!=null){second=first->NEXT;while(second!=null){if(first->valuevalue){temp=newnode();temp->value=first->value;first->value=second->value;second->value=te

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。