#include "stdio.h"
struct clist
{
int data;
struct clist *next;
};
typedef struct clist cnode;
typedef cnode *clink;
/*使用数组值创建循环链表*/
clink createclist(int *array,int len)
{
clink head,before,new_node;
int i;
head=(clink)malloc(sizeof(cnode));
if(!head) return NULL;
head->data=array[0];
head->next=NULL;
before=head;
for(i=1;i<len;i++)
{
new_node=(clink)malloc(sizeof(cnode));
if(!new_node) return NULL;
new_node->data=array[i];
new_node->next=NULL;
before->next=new_node;
before=new_node;
}
new_node->next=head;
return head;
}
void main()
{
clink head,ptr;
int list[6]={1,2,3,4,5,6};
int i;
head=createclist(list,6);
if(head==NULL)
{
printf("内存分配失败!/n");
exit(1);
}
printf("数组内容:");
for(i=0;i<6;i++)
{
printf("[%d]",list[i]);
}
printf("/n");
printf("链表内容:");
ptr=head;
do
{
printf("[%d]",ptr->data);
ptr=ptr->next;
}while(head!=ptr);
printf("/n");
}
循环链表的创建
最新推荐文章于 2022-03-19 14:42:42 发布