数据结构复习笔记(二)——线性表的链式存储结构之循环链表

循环链表

单链表终端结点的指针指向头节点


空表
非空循环链表

循环链表的创建

参考 https://blog.csdn.net/qq_29542611/article/details/79029540

typedef struct CLinkNode
{
    Elemtype data;
    struct CLinkNode *next;
}CLinkNode, *CLinkList;

void IniteCLinkList(CLinkList *L) {
    int data = 0;
    CLinkNode *target = NULL;
    CLinkNode *head_node = NULL;
    cout << "输入数据,0代表结束" << endl;
    while (1) {
        cin >> data;
        if (data == 0) {
            break;
        }

        if (*L == NULL) {
            CLinkNode *head = (CLinkNode*)malloc(sizeof(CLinkNode));
            
            *L = head; //链表指向头结点

            CLinkNode *node = (CLinkNode*)malloc(sizeof(CLinkNode));
            node->data = data;
            node->next = head;
            head->next = node;
        }
        else
        {
            for (target = (*L)->next; target->next != *L; target = head_node = target->next) {
                head_node = target->next;

                CLinkNode* node = (CLinkNode*)malloc(sizeof(CLinkNode));
                
                node->data = data;
                node->next = head_node;

                target->next = node;//将新结点插入尾部

            }
        }

    }
    

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容