单向循环链表

#include
#include
#define N 9
typedef struct node{
   int  data;
   struct node * next;
}ElemSN;
ElemSN*Createlink(int a[],int n){
int i;
        ElemSN*h=NULL,*p,*t;
        for(i=0;idata=a[i];
    if(!h)        //建立只有一个结点的循环链表
            h=t=p;
    else        //结点数目大于1
            p->next=h;//建立循环链表
    t=t->next=p;//标记链表的尾结点
         }
     return h;
}
void Printlink(ElemSN*h){
     ElemSN*p;
     p=h;
     do{ //do while循环输出
	     printf("%2d\n",p->data);
	     p=p->next;
     }while(p!=h);
}
int main(void){
int a[N]={1,2,3,4,5,6,7,8,9};
ElemSN*head;
head=Createlink(a,9);
Printlink(head);
}

文章题目:单向循环链表
网页地址:http://scyanting.com/article/jgsehd.html