当前位置: 首页 > ops >正文

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

在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FASLE 0//定义宏标识判断是否成功
typedef struct Node {int data;struct Node* next;
}Node;Node* InitList() {Node* list = (Node*)malloc(sizeof(Node));list->data = 0;//创建节点保存datalist->next = list;return list;
}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++;}void printList(Node* list) {//传入头结点Node* node =list->next;//拿到第一个节点赋值给nodewhile (node != list) {//尾节点不等于头结点printf("%d->", node->data);node = node->next;}printf("NULL\n" );}int num(Node* list) {return list->data;}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;}
int main() {Node* list=InitList();headInsert(list, 1);headInsert(list, 2);headInsert(list, 3);headInsert(list, 4);tailInsert(list, 5);tailInsert(list, 6);tailInsert(list, 43);tailInsert(list, 21);tailInsert(list, 31);printList(list);printf("%d\n", num(list));DeleteList(list, 4);//删除元素为4的节点printList(list);printf("%d\n", num(list));DeleteList(list, 31);//删除元素为4的节点printList(list);printf("%d\n", num(list));return 0;
}
http://www.xdnf.cn/news/5989.html

相关文章:

  • 旋变信号数据转换卡 旋变解码模块 汽车永磁同步电机维修工具
  • 用PyTorch在超大规模下训练深度学习模型:并行策略全解析
  • synchronized关键字详解
  • 国产ETL数据集成软件和Informatica 相比如何
  • 鸿蒙OSUniApp开发支持多语言的国际化组件#三方框架 #Uniapp
  • iOS WebView和WKWebView怎么调试?
  • 计算机网络:移动通信蜂窝网络指的是什么?
  • centos服务器,疑似感染phishing家族钓鱼软件的检查
  • 捕捉Unix信号
  • css 左右布局
  • 业务中台-典型技术栈选型(微服务、容器编排、分布式数据库、消息队列、服务监控、低代码等)
  • 鸿蒙OSUniApp 实现的二维码扫描与生成组件#三方框架 #Uniapp
  • STM32 实时时钟(RTC)详解
  • 【​​HTTPS基础概念与原理​】TLS握手过程详解​​
  • 常见相机焦段的分类及其应用
  • java加强 -stream流
  • 如何开发一款 Chrome 浏览器插件
  • 纯css实现蜂窝效果
  • [:, :, 1]和[:, :, 0] 的区别; `prompt_vector` 和 `embedding_matrix`的作用
  • LeetCode热题100--234.回文链表--简单
  • 【操作系统期末速成】①操作系统概述
  • JS逆向实战四:某查查请求头逆向解密
  • Java Garbage Collection: 深入解析自动内存管理机制
  • SpringBoot 3.0 开发简单接口
  • 芯片测试之Input Leakage Current(输入漏电流)Test全解析:从原理到实战
  • 火山引擎实时音视频 高代码跑通日志
  • AMS3xxi激光测距仪安装调试维护详解
  • LeetCode 热题 100 105. 从前序与中序遍历序列构造二叉树
  • OpenHarmony轻量系统--BearPi-Nano开发板网络程序测试
  • 图像识别与 OCR 应用实践