线性表(4)--循环链表

#include<stdio.h>
#include<stdlib.h> 
typedef struct Node
{
   int data;
   Node *next;	
}CLink; 
void print(CLink *pNode);
//初始化
void Init(CLink **Node)//初始化循环链表,注意指针的使用 
{
  int n,a;
  CLink *sta,*temp;
  printf("输入元素个数:\n");
  scanf("%d",&n);
  while(n--)
  {
  	scanf("%d",&a);
  	if(!(*Node))//若链表为空,生成头结点 
  	{
  	  (*Node)=(CLink *)malloc(sizeof(CLink));
	  (*Node)->data=a;
	  (*Node)->next=(*Node);
	}
	else
	{
		for(sta=(*Node);sta->next!=(*Node);sta=sta->next);//寻找指向pNode的最后一个节点 
		temp=(CLink *)malloc(sizeof(CLink));//插入当前结点 
		temp->data=a;
		temp->next=sta->next;
		sta->next=temp;
	}
	print(*Node);//插入一次后,打印当前链表 
  }
}
void print(CLink *pNode)//打印链表 
{
	printf("print:");
	CLink *temp=pNode;
	while(temp->next!=pNode)
	{
		printf("%d->",temp->data);
		temp=temp->next;
	}printf("%d",temp->data);
	printf("\n");
	//free(temp);
}
int main()
{
  	CLink *l=NULL;
  	Init(&l);
  	print(l);
} 

运行结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值