实验楼楼赛 第14期-双向链表

Ansys Fluent DPM模型实战:旋风分离器颗粒轨迹仿真全流程解析(附案例文件) 本文详细解析了使用Ansys Fluent中的离散相模型进行旋风分离器颗粒轨迹仿真的全流程。从几何简化、网格策略到物理模型界定,重点阐述了DPM模型的关键设置步骤,包括单向耦合假设、颗粒注入与受力配置,并提供了结果分析与优化方法,帮助工程师精准模拟气固分离过程,提升设计效率。 阅读详情

题目链接双向链表
这道题一开始没有灵感,于是网上搜了下答案.没搜到.于是只好自己乖乖的慢慢改bug.发现List表的head表头和tail表尾是都不为空的,都是指向了具体的节点的,而且这是一个双向循环链表,结尾的遍历和释放都明显错了.代码贴在下面啦:

list.c

#include "list.h"

struct List*
init_list () {
    struct List* list = (struct List *) malloc (sizeof (struct List));
	
	list->head = list->tail = NULL;
    return list;
}

void
free_list (struct List* list) {
    struct Node* current = list->head;
    struct Node* pcurrent = current;
	
	current = current->next;
	free(pcurrent);
	

    while (current != list->head) {
		pcurrent = current;
		current = current->next;
        free (pcurrent);
    }
    free (list);
}

void
traverse_list (struct List* list, void (*callback)(void* data)) {
    struct Node* current = list->head;
    while (current) {
        (*callback)(current->data);
        current = current->next;
		if(current == list->head)
			break;
    }
}

void
insert_after (struct List* list, struct Node* prev, void* data) {
	struct Node* next = prev ? prev->next : list->head;

    struct Node* newnode = (struct Node *) malloc (sizeof (struct Node));
    newnode->data = data;

	newnode->prev = prev ? prev : list->tail;
    newnode->next = next;

    prev ? prev->next = newnode : list->tail ? list->tail->next = newnode : NULL;
    next ? next->prev = newnode : 0 ;

    list->head == NULL ? list->head = list->tail = newnode :
        prev == NULL ? list->tail = newnode : 0 ;
}

void
insert_before (struct List* list, struct Node* next, void* data) {
    struct Node* prev = next ? next->prev : list->tail;

    struct Node* newnode = (struct Node *) malloc (sizeof (struct Node));
    newnode->data = data;

	newnode->prev = prev;
	newnode->next = next ? next : list->head;
	
	next ? next->prev = newnode : list->head ?  list->head->prev = newnode : NULL;
    prev ? prev->next = newnode : 0 ;

    list->tail == NULL ? list->head = list->tail = newnode :
        next == NULL ? list->head = newnode : 0 ;
}

void
insert_front (struct List* list, void* data) {
    insert_before (list, NULL, data);
}

void
insert_back (struct List* list, void* data) {
    insert_after (list, NULL, data);
}

void
delete_from (struct List* list, struct Node* node) {
    struct Node* prev = node->prev;
    struct Node* next = node->next;

    prev ? prev->next = next : 0 ;
    next ? next->prev = prev : 0 ;

    node == list->head ? list->head = next : 0;
    node == list->tail ? list->tail = prev : 0;

    free (node);
}

其余两个文件不用改动
实现效果:
在这里插入图片描述

FISCO BCOS(八)——— 一键部署 WeBase 环境 版本 Java Oracle JDK 8 至 14 MySQL MySQL-5.6及以上 Python Python3.6及以上 PyMySQL 1、获取部署安装包: wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.4/webase-deploy.zip 2、解压安装包: unzip webase-deploy.zip 3、进入目录: c... 阅读详情

相关推荐

SenseVoice 实测,阿里开源语音大模型,识别效果和效率优于 Whisper,居然还能检测掌声、笑声!5分钟带你部署体验

阿里开源语音大模型:语音识别效果和性能强于 Whisper,还能检测掌声、笑声、咳嗽等

u010522887的专栏 4万+

实验楼-楼赛第三期

比赛地址https://www.shiyanlou.com/contests/lou3/console 存储学习记录(Python+Sqlite+sqlalchemy) 介绍 我们开发了一个 Python 程序,通过 SQLAlchemy 向实验楼的 sqlite 数据库中写入用户,课程和学习记录数据。但这个程序在你的实验环境中无法运行,请修复其中的 bug,让程序可以正确执行。 解答步骤 1. ...

IT-Why 451

UG/NX二次开发实战:用Python脚本批量更新100个零件参数,解放你的双手

本文详细介绍了如何利用NXOpen Python API进行UG/NX二次开发,实现批量更新100个零件参数的自动化流程。通过环境配置、框架设计、核心代码实现及性能优化,帮助工程师高效完成参数化设计任务,显著提升工作效率。

weixin_28694169的博客 276

【数据结构】栈链式存储的实现

【数据结构】栈链式存储的实现 //堆栈的链式存储实现 #include<iostream> using namespace std; ​ typedef int element; typedef struct Node { element data; struct Node *next; }linkstack; ​ ​ void Initial(linkstack ...

zhangxiafll的博客 554

从原理图到PCB:手把手教你绘制DRV8301驱动板(附完整代码与避坑指南)

本文详细介绍了如何从原理图设计到PCB布局,手把手教你绘制DRV8301驱动板,特别适用于FOC(磁场定向控制)系统开发。内容涵盖元器件选型、电源树架构设计、栅极驱动电路、PCB布局技巧、焊接调试及代码配置,并附有完整代码与常见问题避坑指南,帮助工程师快速掌握DRV8301驱动板的设计与优化。

weixin_33716941的博客 394

相衬成像介绍

相衬成像介绍

qq_41981768的博客 2910

C++ guid

百科:https://baike.baidu.com/item/GUID/3352285?fr=aladdin // guid.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <objbase.h> #include <stdio.h> //生成GUID const char* newGUID() { st...

qq_24127015的博客 705

手把手教你用gmid方法设计二级运放:从理论到仿真全流程(附避坑指南)

本文详细介绍了使用gmid方法设计二级运放的全流程,从理论到仿真实践,特别针对初学者常见问题提供避坑指南。通过系统化的晶体管尺寸确定技术,帮助工程师在性能、功耗和面积之间找到最佳平衡点,适用于模拟集成电路设计中的关键模块开发。

weixin_29213525的博客 271

实验楼第四期楼赛

C语言之指针字符串数组 实验楼第四期楼赛是关于C语言的,共分为五大题,这是第一大题 题目:整理课程列表 介绍 冬瓜同学平时十分喜欢在实验楼学习新课程,每学完一节课就会将其记下。当学会的编程语言多了,就想整理汇总一下,看看自己的技术栈。 为了有序排列所有的编程语言,冬瓜决定使用冒泡排序对其进行排列。而字符串的比较方法使用的是字典序。如果不懂字典序,可以戳这里写链接内容。冬瓜同学

摩尔的博客 1417

基于深度学习的堰塞坝表层颗粒物质识别研究

本文提出一种基于深度学习的堰塞坝表层颗粒物质智能识别方法,针对颗粒分布散乱、背景复杂的问题,采用"大颗粒逐个识别、密集小颗粒分块识别"策略。结合Mask R-CNN、SLIC和AlexNet构建识别模型,通过无人机影像实现自动识别。实验表明该方法精度超过90%,具备迁移能力。文章提供了Python实现代码,涵盖数据预处理、SLIC分割、模型构建(Mask R-CNN和AlexNet)及训练流程,为堰塞坝应急抢险提供技术支持。

huanghm88的专栏 180

C++(Qt)软件调试---Windows下Qt使用dump定位崩溃位置(1)

在C++/Qt程序崩溃时,往往很难找到崩溃的原因,如果是稳定复现的问题还好,但是多数情况遇见的问题是随机出现的,这时想要快速找到问题并解决就需要通过dump文件定位崩溃位置。

mahuifa的博客 1万+

实验楼mysql挑战2_实验楼发布全新比赛,欢迎大家来挑战!(附第一期楼赛答案解析及预告)...

关注「实验楼」,每天分享一个项目教程简介相信不少小伙伴都发现了,实验楼上线了一种全新的比赛「 楼赛 」。不同于以往所有的OJ或ACM测试,「楼赛」更偏重于实际操作能力和解决问题的能力,模拟真实工作中经常遇到的问题,发现真正有编程能力的人。第一期的题目为「为新同事创建系统账户」、「修复无法启动的数据库」、「让实验楼网站恢复运行」,都是工作和面试中都经常会碰到的问题,本篇文章将带来这三道题目的答案解析...

weixin_30674575的博客 428

【人工智能】 WebDev Arena:实时AI Web开发竞赛的技术探索与价值

《AI编程竞赛推动Web开发技术创新》摘要:WebDev Arena作为聚焦Web开发领域的实时AI编程竞赛,通过标准化竞技环境检验AI模型在代码生成、问题解决等方面的能力。竞赛覆盖前端、后端等全流程开发环节,采用实时评分机制,推动AI对复杂Web需求的理解和多元技术栈适配。该赛事不仅促进AI编程技术创新,更为Web开发行业与AI技术融合搭建桥梁,有望提升开发效率、降低技术门槛。未来将拓展Web3.0等前沿技术主题,持续推动行业智能化发展。(150字)

奶爸的编程之路,也就一周冷个三天 254

《Linux内核分析》 第六周

《Linux内核分析》 第6周 一、进程的描述 1.进程控制块PCB 2.linux下的进程转化图 TASK_RUNNING可以是就绪态或者执行态,具体取决于系统调用 TASK_ZOMBIE僵尸进程(终止的进程) 3.进程描述符task_struct task_struct是一个数据结构,数据结构庞大; pid:进程标识值,一个int型数值 进程链表struct list_head t...

weixin_30439031的博客 73

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

实验楼-楼赛第一期

比赛地址为新同事创建系统账户目标1.用户名:lousai 2.Home目录:/home/lousai 3.允许lousai使用SSH登陆系统 4.lousai用户默认使用zsh 5.lousai用户需要sudo权限知识点1.Linux用户创建及配置 2.Linux Sudo权限设置解题过程创建home目录查看有无指定的用户home目录,若没有先创建cd /home ls sudo mkdi

IT-Why 1219

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

实验楼python挑战答案_楼赛第1期-Linux项目挑战 题目解析

楼赛是实验楼新上线的项目挑战。不同于侧重算法的 OJ、ACM一类的,楼赛考验的是动手能力,分析和解决问题的能力。这些正是实验楼的动手实践学IT理念所推崇的。作为实验楼第一次常规周赛,本次三道题目有很多同学询问标准答案,因此制作了题目解析文档,希望对大家有所帮助。答案并不一定是最优的方案,欢迎大家贴出。比赛结束后,仍然可以挑战,但成绩不再计入排行榜,如果你还没试过,先去挑战下再来看解析会更有收获!正...

weixin_39676021的博客 323

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

实验楼楼赛第4期C语言项目挑战题 -远程 Shell

这道题实际上考察的是 Linux 上的 C 语言网络编程。并且只给出了客户端的源代码和服务端的二进制文件。需要根据客户端代码编译和运行的状态来找 bug,必要的时候需要进行调试跟踪。 在客户端代码文件中包含了多个 socket 编程中容易犯的错误: 错误1:TCP 连接 服务器端使用 TCP 连接,代码中创建 socket 的时候用的是 UDP 连接方式,需要使用: int sock = sock...

MagicScaring的博客 423

如何对身份证号码进行校验?

每个人的身份证号码都都是一串有特别意义的数字,如代表出生地,出生日,性别等,那么对于行政上的一些工作,核对身份证是不是输入有误,身份证是否造假,也是可以通过身份证上的号码数字进行核对检查。 先看一下原理,二代身份证共18位,那么最后一位是由前面的18位通算术来计算出来的,如果某一位出错,那么校验结果就会不一致,引此来判断这个身份证号是不是正确合法。 再看一下算法,先将身份证前面的17位数分别乘以不...

MagicScaring的博客 4501

手机的九宫格图形解锁算法(判断是否合法)

从HDU 5641有感。 链接如下HDU 5641 代码如下: #include #include #include #define MS(x,y) memset(x,y,sizeof(x)) using namespace std; int num[10],k; bool chose[10][10]; bool chos[10]; void init() { MS(chose,

MagicScaring的博客 2567

骑士周游问题(马踏棋盘问题)DFS

马踏棋盘算法(骑士周游问题) 定义:将马随机放在国际象棋的8×8棋盘Board[0~7]的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。 如图: 用一个二维数组来存放棋盘,假设马儿的坐标为(x,y),那么可供选择的下一个位置共有8种可能。我们所要做的,就是从0号位置开始,依次判断新的马儿位置是否可用,不可用的话(即马儿已经走过该位置),则遍历下一个可能

MagicScaring的博客 2526

gdb 调试问题Error creating process XXXXXXXX(error 5).

描述: 在调试一道题的时候,可能是不小心退出了,然后之后调试就一直报这个错误,重启codeblocks和电脑都没用. 然后就是问度娘,都没解决我的问题.没办法只好FQ找谷哥了。 找到几篇国外的网站关于我这个问题的解决办法.心累,英语学得不好,看的懵懵懂懂. 链接在这里:传送门 ta的情况跟我的一样.也是debug不了.后来ta把出现问题的那道题全删了 然后莫名其妙就好了…. 我怀着将信

MagicScaring的博客 2448

如何通过两个地点的经纬度算出它们之间的直线距离?

Code如下: 参数含义: lat1:A点的纬度值 lng1:A点的经度值 lat2:B点的纬度值 lng2:B点的经度值 #define _USE_MATH_DEFINES #define EARTH_RADIUS 6378137.0 /* 地球半径 单位:米 */ #include <math.h> double get_great_circle_d...

MagicScaring的博客 2256

DP问题之最优加法序列

题目:有一个由1..9组成的数字串.问如果将m个加号插入到这个数字串中.使得所形成的算术表达式的值最小?例如这个数字串为12345,加号数为1时,最小值就是123+45=168;加法数为2时,最小值就是12+34+5=51,加法数为3时,最小值为12+3+4+5=24。 解题思路: 先找到定量。这一题中的定量是什么呢?因为是添入加号,那么添完加号后,表达式的最后一定是个数字串,这就是定量.从这

MagicScaring的博客 1856

Homework 贪心(排序)

题目描述 临近开学了,大家都忙着收拾行李准备返校,但I_Love_C却不为此担心! 因为他的心思全在暑假作业上:目前为止还未开动(-_-!!还以为他有多冷静呢)。 暑假作业是很多张试卷,我们这些从试卷里爬出来的人都知道,卷子上的题目有选择题、填空题、简答题、证明题等。 而做选择题的好处就在于工作量很少,但又因为选择题题目都普遍很长。 如果有5张试卷,其中4张是选择题,最后一张是填空题,

MagicScaring的博客 1145

母函数定义以及习题练习

定义对于序列a0,a1,a2,…构造一函数: 称函数G(x)是序列a0,a1,a2,…的母函数实 例 分 析例1:若有1克、2克、3克、4克的砝码各一 枚,能称出哪几种重量?各有几种可能方案? 如何解决这个问题呢?考虑构造母函数。 如果用x的指数表示称出的重量,则: 1个1克的砝码可以用函数1+x表示, 1个2克的砝码可以用函数1+x2表示, 1个3克的砝码

MagicScaring的博客 1142

ACM题目之排列序数

问题 F: S:排列序数 时间限制: 1 Sec  内存限制: 256 MB 题目描述 如果用a b c d这4个字母组成一个串,有4!=24种,如果把它们排个序,每个串都对应一个序号:   abcd  0   abdc  1   acbd  2   acdb  3   adbc  4   adcb  5   bacd  6

MagicScaring的博客 899
上一篇: Python实现12306网站的余票查询
下一篇: 实验楼楼赛第4期C语言项目挑战题 -远程 Shell
MagicScaring
博客等级 码龄11年 18粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值