loop

慈云数据 2024-03-18 技术支持 50 0

#include "loop_list.h"

loop
(图片来源网络,侵删)

//创建单向循环链表

loop_p create_head()

loop
(图片来源网络,侵删)

{

    loop_p L=(loop_p)malloc(sizeof(loop_list));

    if(L==NULL)

    {

        printf("create fail\n");

        return NULL;

    }

    L->len = 0;

    L->next=L;

    return L;

}

//创建节点

loop_p create_node(datatype data)

{

    loop_p new=(loop_p)malloc(sizeof(loop_list));

    if(new==NULL)

    {

        printf("create fail\n");

        return NULL;

    }

    new->data=data;

    return new;

}

//头插

void iNSErt_head(loop_p L,datatype data)

{

    if(L==NULL)

    {

        printf("data fail\n");

        return;

    }

    loop_p new=create_node(data);

    new->next=L->next;

    L->next=new;

    L->len++;

}

//输出

void out_put_loop(loop_p L)

{

    loop_p p=L->next;

    while(p!=L)

    {

        printf("%d--->\n",p->data);

        p=p->next;

    }

    putchar(10);

}

//按位置插入

void insert_pos(loop_p L,datatype data,int pos)

{

    loop_p new=create_node(data);

    loop_p p=L;

    for(int i=0;inext;

    }

    new->next=p->next;

    p->next=new;

    L->len++;

}

//尾删

void del_tail(loop_p L)

{

    loop_p p=L;

    while(p->next->next!=L)

    {

        p=p->next;

    }

    loop_p del=p->next;

    p->next=L;

    free(del);

    L->len--;

}

//按位置删除

int del_pos(loop_p L,datatype pos)

{

    loop_p p=L;

    for(int i=0;inext;

    }

    loop_p del = p->next;

    p->next=p->next->next;

    free(del);

    L->len--;

}

#ifndef __LOOP_LIST_H__

#define __LOOP_LIST_H__

#include

#include

typedef int datatype;

typedef struct loop_list

{

    union

    {

        int len;

        datatype data;

    };

    struct loop_list *next;

}loop_list,*loop_p;

//创建单向循环链表

loop_p create_head();

//创建节点

loop_p create_node(datatype data);

//头插

void insert_head(loop_p L,datatype data);

//按位置插入

void insert_pos(loop_p L,datatype data,int pos);

//输出(看现象)

void out_put_loop(loop_p L);

//尾删

void del_tail(loop_p L);

//按位置删除

int del_pos(loop_p L,datatype pos);

#endif

#include "loop_list.h"

int main()

{

    loop_p L=create_head();

    insert_head(L,1);

    insert_head(L,2);

    insert_head(L,3);

    insert_pos(L,4,2);

    //del_tail(L);

    del_pos(L,2);

    out_put_loop(L);

    return 0;

}

 

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon