单向循环链表C语言实现实现(全)

01.结构体定义

c 复制代码
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FASLE 0//定义宏标识判断是否成功
typedef struct Node {
       int data;
       struct Node* next;
}Node;

02.初始化

c 复制代码
 Node* InitList() {
        Node* list = (Node*)malloc(sizeof(Node));
        list->data = 0;//创建节点保存data
        list->next = list;
        return list;
}

04.增加节点

c 复制代码
void headInsert(Node*list,int data) {//头插
        Node* node = (Node*)malloc(sizeof(Node));
        node->data = data;
        node->next = list->next;
        list->next = node;
        list->data++;//记录节点数
 }
 
void tailInsert(Node* list,int data) {//带入头指针,尾插
       Node* n = list;//保存list头节点,用n这个指针变量移动进行判断方便判断
       Node* node = (Node*)malloc(sizeof(Node));
       node->data = data;
       while (n->next != list) {
               n = n->next;
       }
       node->next = list;
       n->next = node;
       list->data++;
 }

05.删除节点

c 复制代码
 int DeleteList(Node* list,int data) {
        Node* prenode = list;
        Node* current = list->next;//设置一个指向头街点的node节点
        while (current!=list) {
                if (current->data == data) {
                       prenode->next = current->next;
                       free(current);
                       list->data--;
                       return TRUE;
                }
                else {
                       prenode = current;
                       current = current ->next;
                }
        }
        return FASLE;
 }

}
相关推荐
2401_872418786 小时前
算法入门:数据结构-堆
数据结构·算法
jingshaoqi_ccc7 小时前
windows 10系统下QT的安装及在Visual studio中的扩展安装
windows·qt·visual studio
不会就选b10 小时前
数据结构之顺序表和链表的OJ题(上)
数据结构·链表
東雪木12 小时前
泛型、反射、注解(Spring 框架核心底层)专属复习笔记
java·windows·笔记·学习·spring
啦啦啦啦啦zzzz13 小时前
数据结构:二叉树的线索化
数据结构·算法
如竟没有火炬14 小时前
寻找峰值——二分
java·开发语言·数据结构·python·算法·散列表
sun00770014 小时前
Windows下UniGetUI,Linux下敲命令
windows
流星白龙14 小时前
【MySQL高阶】18.缓冲池页管理
数据库·windows·mysql
AI行业学习15 小时前
PuTTY 工具下载部署、基础配置及 SSH 远程服务器连接完整操作指南Windows 平台 【2026.6.1】
运维·windows·ssh
he___H16 小时前
B、B+树和vue部分知识
数据结构·vue.js·b树