首页 > 其他分享 >循环单链表的创建,头插法、尾插法——基于C语言数据结构

循环单链表的创建,头插法、尾插法——基于C语言数据结构

时间:2022-10-18 13:12:34浏览次数:68  
标签:插法 单链 int void next InitList C语言 CLinkNode

#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

相关文章