更新时间:2023-02-17 10:22:25
今天是您的幸运日! :-),尽管它在c ++中!
today is your lucky day! :-), though it is in c++!
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Node
{
int Data;
Node* Next;
Node()
{
Data =-1;
Next= NULL;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
// fill data into link List
Node* First= NULL, *Next=NULL,*Temp;
for(int i =10;i<20;i++)
{
Temp = new Node();
Temp->Data = i;
Next = First;
if(Next==NULL)
{
First = Temp;
}
else
{
while((Next->Next!=NULL))
{
Next=Next->Next;
}
Next->Next = Temp;
}
}
//display data
cout<<"Display Data"<<endl;
Next = First;
while((Next!=NULL))
{
cout<<Next->Data<<endl;
Next=Next->Next;
}
// Reverse it now
Node* Last=NULL,*ltTemp;
while(First->Next!=NULL)
{
ltTemp = First;
Temp = First->Next;
while((Temp->Next!=NULL))
{
if(Temp)
Temp=Temp->Next;
if(ltTemp)
ltTemp= ltTemp->Next;
}
// Plug the last one
ltTemp->Next= NULL;
// Place in reverse order
if(Last== NULL)
{
Last=Temp;
}
else
{
Next = Last ;
while((Next->Next!=NULL))
{
Next=Next->Next;
}
Next->Next = Temp;
}
}
if(Temp)
Temp->Next= First;
//display data
cout<<"Display Data reverse order"<<endl;
Next = Last;
while((Next!=NULL))
{
cout<<Next->Data<<endl;
Next=Next->Next;
}
/// delete all the allocated memory
Next = First;
if(Next)
while((Next!=NULL))
{
Temp = Next;
Next=Next->Next;
delete Temp;
}
if(Next)
delete Next;
}
一个:-) ..这次,此逻辑工作更快
one more :-).. this time this logic work faster
#include "stdafx.h"
#include <iostream>
using namespace std;
struct Node
{
int Data;
Node* Next;
Node()
{
Data =-1;
Next= NULL;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
// fill data into link List
Node* First= NULL, *Next=NULL,*Temp;
for(int i =10;i<20;i++)
{
Temp = new Node();
Temp->Data = i;
Next = First;
if(Next==NULL)
{
First = Temp;
}
else
{
while((Next->Next!=NULL))
{
Next=Next->Next;
}
Next->Next = Temp;
}
}
//display data
cout<<"Display Data"<<endl;
Next = First;
while((Next!=NULL))
{
cout<<Next->Data<<endl;
Next=Next->Next;
}
// Reverse it now
Node* Last=NULL,*ltTemp;
Temp= First;
while(Temp)
{
ltTemp = Temp->Next;
if(Last)
{
Temp->Next=Last;
}
else
Temp->Next=NULL;
Last = Temp;
Temp=ltTemp;
}
//display data
cout<<"Display Data reverse order"<<endl;
Next = Last;
while((Next!=NULL))
{
cout<<Next->Data<<endl;
Next=Next->Next;
}
/// delete all the allocated memory
Next = First;
if(Next)
while((Next!=NULL))
{
Temp = Next;
Next=Next->Next;
delete Temp;
}
if(Next)
delete Next;
}
这是家庭作业吗?..您是否尝试过逻辑自己?
小代码段:-
说您的链接列表是用此类创建的:-
struct Node
{
int数据;
struct Node *下一步;
};
让我给出一个线索,使用temp Node变量进行反转.
is it homework??.. have you tried logic urself?
little code snippet:-
say your linklist is created with this class :-
struct Node
{
int Data;
struct Node * Next;
};
let me give a clue, use temp Node variable to reverse.