单链表 c语言

不一定对,仅供参考

在单链表中开始理解错误的地方

这两个并不等价,前者用于后移,后者会破坏链表结构

list = list->next;    list->next = list->next->next; 

#include <stdio.h>
#include <stdlib.h>
typedef struct Node{int data;struct Node* next;
}Node;
// 初始化,创建头结点返回
Node* list_init()
{Node* list = (Node*)malloc(sizeof(Node));list->next = NULL;list->data = 0;return list;
}
// 头插法
int head_insert(Node* list,int data)
{Node* node = (Node*)malloc(sizeof(Node));node->next = NULL;node->data = data;node->next = list->next;// 连接后面结点list->next = node; // 头后添加list->data++; // 记录个数return 0;
}
// 尾插法
int tail_insert(Node* list,int data)
{Node* node = (Node*)malloc(sizeof(Node));node->next = NULL;node->data = data;Node* head = list;while(list->next != NULL){list = list->next;//list->next = list->next->next; //改变list,注释方法错误}node->next = list->next;list->next = node;list->next->data = data;list = head;head->data++;return 0;
}
int delete_node(Node* list,int data)
{if(list == NULL || list->next == NULL) return -1;Node* pre = list;Node* current = list->next;while(current != NULL){if(current->data == data){pre->next = current->next;list->data--;free(current);return 0;}pre = current;current = current->next; }return -1;}
void printf_list(Node* list)
{Node* current = list;while(current->next != NULL){printf("%d\t",current->next->data);current = current->next;}printf("\n");printf("num:%d\n",list->data);
}
void free_list(Node* list)
{while(list != NULL){Node* current = list;list = list->next;free(current);}
}
int main(int argc, char const *argv[])
{Node* list = list_init();tail_insert(list,3);tail_insert(list,4);tail_insert(list,5);tail_insert(list,6);tail_insert(list,7);delete_node(list,4);printf_list(list);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/26552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Downie for Mac v4.7.17 在线视频下载软件 安装(简单易学,小白轻松搞定)

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试1、打开软件&#xff0c;进行设置2、下载视频&#xff0c;测试3、根据需要选…

凡尔码来访登记卡助力来访安全

来访登记制度是指为了加强对来访人员的管理和安全控制&#xff0c;确保组织内部秩序和安全的一项制度。通过来访登记制度&#xff0c;可以对来访人员的身份进行核实&#xff0c;了解来访目的&#xff0c;并采取相应的安全措施&#xff0c;为组织内部的工作和人员安全提供保障。…

登录/注册- 滑动拼图验证码(IOS/Swift)

本章介绍如何使用ios开发出滑动拼图验证码&#xff0c;分别OC代码和swift代码调用 1.导入项目model文件OC代码&#xff08;下载完整Demo&#xff09; 2.放入你需要显示的图片 一&#xff1a;OC调用 #import "ViewController.h" #import "CodeView.h"…

【problems】解决·[22001][1138] Data truncation: Invalid use of NULL value.

前言 在数据库管理与维护的过程中&#xff0c;为了保证数据的完整性和一致性&#xff0c;我们常常需要对表结构进行优化&#xff0c;比如将某些列设置为不允许NULL值&#xff08;NOT NULL&#xff09;。然而&#xff0c;如果目标列中已存在NULL值&#xff0c;直接修改将会遇到…

ssh 两次跳转,通过跳板机直接登录设备

在本机的~/.ssh/config文件中添加下面内容: #跳板机ip Host env-1HostName 192.xx.x.xUser user#设备ip Host nv-5HostName 10.xxx.x.xUser rootProxyJump env-1将本机~/.ssh/id_rsa.pub中的公钥拷贝到user192.xx.x.xx的~/.ssh/authorized_keys中; 将本机~/.ssh/id_rsa.pub中…

ArrayList浅析

目录 一、ArrayList源码1.1 迭代器1.1.1 Itr源码浅析1.1.2 ListItr源码浅析 1.2 常用方法1.3 System.arraycopy1.4 ArrayList 的创建方式 二、引申问题2.1 ArrayList的大小是如何增加的&#xff1f;2.2 什么情况下你会使用ArrayList2.3 在索引中ArrayList的增加或者删除某个对象…

C语言中数组和指针的关系

在C语言中&#xff0c;数组和指针之间存在着密切的关系&#xff0c;尽管它们在概念上是不同的。以下是关于C语言中数组和指针关系的一些要点&#xff1a; 数组名作为指针&#xff1a; 在大多数情况下&#xff0c;数组名在表达式中会被当作指向其第一个元素的指针。例如&#x…

【无标题】QTday1

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QMainWindow(parent) {//设置窗口标题this->setWindowTitle("QQ");//设置窗口图标this->setWindowIcon(QIcon("C:\\Users\\雷特玉\\Desktop\\qq.png"));//设置窗口的背景颜色t…

Springboot(若依)国际化配置接口访问后返回????????

最近使用若依的框架进行二次开发&#xff0c;配置了国际化&#xff0c;application.yml配置英文时没问题&#xff0c;但配置中文basename: i18n/messages_zh_CN&#xff0c;访问接口就直接返回的???&#xff0c;如图&#xff1a; 于是检查了I18nConfig文件&#xff0c;没配错…

搜索与图论:所有可达路径(DFS算法)

搜索与图论&#xff1a;所有可达路径&#xff08;DFS算法&#xff09; 题目描述参考代码邻接表方法邻接矩阵方法 题目描述 题目描述 给定一个有 n 个节点的有向无环图&#xff0c;节点编号从 1 到 n。请编写一个函数&#xff0c;找出并返回所有从节点 1 到节点 n 的路径。每条…

【BeX5】知识中心

Grid组件修改行选中颜色 .x-state-highlight, .x-grid-widget-content .x-state-highlight, .x-grid-widget-header .x-state-highlight {background: yellow; }

计算机网络-子网掩码的计算

计算机网络中的子网掩码计算及相关知识 在计算机网络中&#xff0c;子网掩码是一个非常重要的概念。它不仅帮助我们区分网络地址和主机地址&#xff0c;还在网络划分、管理和安全中发挥着重要作用。本文将介绍子网掩码的基本概念、计算方法及其在网络中的应用。 子网掩码的基…

2406,D2024年二月会议

原文 参会者 以下人员(略)出席了会议. 前面 我告诉大家,社区对话系列复兴的第一个视频相当顺利.马丁做得很好.因为拉兹万和我已讨论过他的参与,我问他是否愿意做下个.他接受了.另一个 第1项目:数组文本的d运行时勾挂实现 Razvan总结了TeodorDutu在他的,即用模板替换d运行时…

MathWorks的介绍,以及Simscape 的主要特点

MathWorks 是一家美国的软件公司&#xff0c;以其科学计算软件为广泛知名&#xff0c;特别是 MATLAB 和 Simulink。这两款产品广泛用于工程、科学研究、学术界和工业应用中&#xff0c;帮助用户进行数学计算、算法开发、数据可视化、数据分析&#xff0c;以及仿真和模型构建。 …

每日5题Day23 - LeetCode 111 - 115

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;111. 二叉树的最小深度 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeN…

探索Java 8 Stream API:现代数据处理的新纪元

Stream流 Stream初探&#xff1a;何方神圣&#xff1f; Stream流是一种处理集合数据的高效工具&#xff0c;它可以让你以声明性的方式处理数据集合。Stream不是存储数据的数据结构&#xff0c;而是对数据源&#xff08;如集合、数组&#xff09;的运算操作概念&#xff0c;支…

python绘制散点图

文章目录 1.实验目的2.需求3. 代码以及资源文件4.实验结果 1.实验目的 掌握Python绘图库matplotlib库 2.需求 3. 代码以及资源文件 import numpy as np import matplotlib.pyplot as plt import pandas as pd# 读取NPZ文件 data np.load(../Files/国民经济核算季度数据.npz…

cilium关闭vxlan

说明 操作 启用标志 yum -y install net-tools.x86_64 ifconfig | grep vxlan cilium_vxlan: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500修改相关配置 ks get cm cilium-config -oyaml | grep -E tunnel|ipv4-native-routing-cidr|auto-direct-node-routes…

[AIGC] Java List接口详解

List接口是Java集合框架的一部分&#xff0c;它是一个有序的集合&#xff0c;允许包含重复的元素。List接口在java.util包中&#xff0c;它扩展了Collection接口。本篇文章将详细介绍Java中List接口的常用API。 List接口的常用方法 以下列出了一些List接口的常用方法&#xf…

【OceanBase DBA早下班系列】—— 性能问题如何 “拍CT“ (一键获取火焰图和扁鹊图)

1. 前言 最近接连遇到几个客户的环境在排查集群性能问题&#xff0c;总结了一下&#xff0c;直接教大家如何去获取火焰图、扁鹊图&#xff08;调用关系图&#xff09;&#xff0c;直击要害&#xff0c;就像是内脏的疾病去医院看病&#xff0c;上来先照一个CT&#xff0c;通过分…