欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

不带头结点的循环链表建立、输出、删除

程序员文章站 2022-03-15 17:30:56
...

建立

//不带头结点的循环链表
LinkList* initCList(){
    LinkList* rear;
    LinkList* list;
    list = (LinkList*)malloc(sizeof(LinkList));
    list->next = NULL;
    rear = list;
    for(int i=0;i<10;i++){
        LinkList *s = (LinkList*)malloc(sizeof(LinkList));
        s->data = i;
        rear->next = s;
        rear = s;
    }
    rear->next = list->next;//不赋值尾NULL,将会不断输出
    return list->next;
}

输出

void printCList(LinkList* L){
    LinkList* p = L;
    while(L->next!=p){
        cout<<L->data<<" ";
        L = L->next;
    }
    cout<<L->data;
    cout<<endl;
}

删除

LinkList* deleteNode(LinkList *s){
    LinkList* q = s;
    while(q->next->next != s)
        q = q->next;
    LinkList* temp = q->next;
    q->next = s;
    free(temp);
    return s;
}

 

相关标签: 数据结构