#include <stdio.h> #include <malloc.h> typedef int ElemType; typedef struct LNode{ ElemType data; struct LNode *next; }CLinkNode; void InitList(CLinkNode *&L){ L=(CLinkNode *)malloc(sizeof(CLinkNode)); L->next=L; } void CreateListF(CLinkNode *&L,int a[],int n){ //头插法 InitList(L); CLinkNode *s; for(int i=0;i<n;i++){ s=(CLinkNode *)malloc(sizeof(CLinkNode)); s->data=a[i]; if(L->next==L){ s->next=L; } else{ s->next=L->next; } L->next=s; } } void CreateListR(CLinkNode *&L,int a[],int n){ InitList(L); CLinkNode *r=L,*s; for(int i=0;i<n;i++){ s=(CLinkNode *)malloc(sizeof(CLinkNode)); s->data=a[i]; r->next=s; s->next=L; r=s; } } void DispList(CLinkNode *L){ CLinkNode *p=L->next; while(p!=NULL&&p!=L){ printf("%d ",p->data); p=p->next; } printf("\n"); } int main(){ CLinkNode *L; int a[]={1,2,3,4,5,6,7,8,9,10}; // CreateListF(L,a,10);DispList(L); CreateListR(L,a,10);DispList(L); }
本次发布是对下列代码的优化!未经过大量实验验证其准确性,欢迎各位老师指正!!希望能够得到更多的建议。
标签:插法,单链,int,void,next,InitList,C语言,CLinkNode From: https://www.cnblogs.com/zzbt/p/16802234.html