loop_list单向循环列表

#include "loop_list.h"

//创建单向循环链表

loop_p create_head()

{

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;i<pos-1;i++)

{

p=p->next;

}

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;i<pos-1;i++)

{

p=p->next;

}

loop_p del = p->next;

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

free(del);

L->len--;

}

#ifndef LOOP_LIST_H

#define LOOP_LIST_H

#include <stdio.h>

#include <stdlib.h>

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;

}

相关推荐
Elias不吃糖8 分钟前
Java 常用数据结构:API + 实现类型 + 核心原理 + 例子 + 选型与性能(完整版)
java·数据结构·性能·实现类
Hx_Ma1610 分钟前
List 转二维 List
数据结构·windows·list
Full Stack Developme16 分钟前
算法与数据结构,到底是怎么节省时间和空间的
数据结构·算法
BHXDML23 分钟前
数据结构:(三)字符串——从暴力匹配到 KMP 的跨越
数据结构·算法
不穿格子的程序员35 分钟前
数据结构篇1:不仅是存储:透视数据结构的底层逻辑与复杂度美学
数据结构·时间复杂度·空间复杂度
好奇龙猫1 小时前
【大学院-筆記試験練習:线性代数和数据结构(19)】
数据结构·线性代数
2401_841495641 小时前
【LeetCode刷题】LRU缓存
数据结构·python·算法·leetcode·缓存·lru缓存·查找
一路往蓝-Anbo1 小时前
第 2 篇:单例模式 (Singleton) 与 懒汉式硬件初始化
开发语言·数据结构·stm32·单片机·嵌入式硬件·链表·单例模式
心态还需努力呀1 小时前
【鸿蒙 PC 命令行适配】c-ares 在鸿蒙 PC 上的移植与交叉编译实战(可复现指南)
c语言·开源·harmonyos·鸿蒙·openharmony
张张努力变强2 小时前
C++ 类和对象(五):初始化列表、static、友元、内部类等7大知识点全攻略
开发语言·数据结构·c++·算法