链表是指将若干个数据项按一定的规则连接起来的表,其中的数据项成为结点。链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根 据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括 两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元 素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束。
本文将教你如何实现反转单向链表~
class Class1
{
[STAThread]
static void Main(string[] args)
{
//初始化链表
LineNote startnote = new LineNote( "1" );
LineNote note = startnote;
for( int i = 2; i<= 5 ;i ++ )
{
note.Next = new LineNote( i.ToString() );
note = note.Next;
}
note = startnote;
//输出
while ( note!=null )
{
System.Console.WriteLine( note.Note );
note = note.Next;
}
//开始反转
note = startnote;
LineNote temp = note;
while ( temp != null )
{
note = startnote;
if ( temp != startnote )
{
startnote = temp;
temp = temp.Next;
startnote.Next = note;
}
else
{
temp = temp.Next;
note.Next= null;
}
}
再次输出
note = startnote;
while ( note!=null )
{
System.Console.WriteLine( note.Note );
note = note.Next;
}
}
}
class LineNote
{
public string Note;
public LineNote Next;
public LineNote( string note)
{
Note=note;
}
}