循環鏈表對比單鏈表,只是要把最後一個節點的指針指向頭指針,所以,在遍歷時要注意,結束條件是p!=L,其餘類同。
#include<iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*Link;
void Init_Link(Link &L)
{
L = new LNode;
L->next = L;
}
void Insert_Link(Link &L,int i,int e)
{
if(i < 1)
return;
Link p;
p = L;
int j = 1;
while(p && j < i)
{
j++;
p = p->next;
}
LNode *s;
s = new LNode;
s->data = e;
s->next = p->next;
p->next = s;
}
void Traverse(Link L)
{
Link p;
p = L->next;
while(p!=L)
{
cout << p->data << " ";
p = p->next;
}
}
int main()
{
Link L;
Init_Link(L);
for(int i = 1; i < 5;i++)
{
Insert_Link(L,i,i);
}
Traverse(L);
}