单链表练习与重下AS

news/2025/3/15 21:32:47/文章来源:https://www.cnblogs.com/fanxn/p/18774214

1.练习题:

我的代码答案:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* reverseList(struct ListNode* head) {struct ListNode dummpy;struct ListNode* tmp;dummpy.next=NULL;//引入临时节点,用头插法,临时节点的next域为NULLwhile(head){tmp=head->next;head->next=dummpy.next;dummpy.next=head;head=tmp;}return dummpy.next;
}

2.对前两天单链表核心操作的一个小调试。
代码:

#pragma once编译一次就ok。
不需要加载其他库。


typedef int Element_t;//链式存储,定义节点结构
typedef struct _node {Element_t val;struct _node* next;
}node_t;//定义链表头结构
typedef struct {node_t head;int count;
}LinkList_t;LinkList_t* createLinkList();
int insertLinkListHeader(LinkList_t* link_table, Element_t val);
int insertLinkListPos(LinkList_t* link_table,int pos, Element_t val);
int deleteLinkList(LinkList_t* link_table, Element_t val);
void showLinkList(const LinkList_t *link_table);

包括.h文件和基本文件

#include<stdlib.h>
#include"LinkList.h"LinkList_t* createLinkList() {LinkList_t* table = NULL;table=(LinkList_t*)malloc(sizeof(LinkList_t));if (table == NULL) {return NULL;}table->count = 0;table->head.val = 0;//任意,自行约定table->head.next = NULL;return table;
}//头插法,不需要再寻找插入位置的前置节点,带头节点的链表,头节点就是头插法的前置节点
int insertLinkListHeader(LinkList_t* link_table, Element_t val) {node_t* p = &link_table->head;node_t* new_node = (node_t*)malloc(sizeof(node_t));if (new_node == NULL) {return -1;}new_node->val = val;new_node->next = p->next;p->next = new_node;link_table->count++;return 0;
}//在中间插入
int insertLinkListPos(LinkList_t* link_table, int pos, Element_t val) {node_t* p = link_table->head.next;for (int i = 0; i < pos-1; i++) {p = p->next;}node_t* tmp = (node_t*)malloc(sizeof(node_t));if (tmp == NULL) {return -1;}tmp->val = val;tmp->next = p->next;p->next = tmp;return 0;}void showLinkList(const LinkList_t* link_table) {//辅助指针指向第一个元素,辅助指针不断向后指,直到遇到NULLnode_t* p = link_table->head.next;//指针类型等于指针类型,不应该多加“&”printf("link list: %d\n ", link_table->count);while (p) {printf("%d\t", p->val);p = p->next;}printf("\n");
}int deleteLinkList(LinkList_t* link_table, Element_t val) {// 辅助指针,指向val这个元素的前置节点node_t* p = &link_table->head;while (p->next) {if (p->next->val == val) {break;}p = p->next;}if (p->next==NULL) {printf("Not find!\n");return -1;}//删除逻辑node_t * tmp = p->next;p->next = tmp->next;free(tmp);link_table->count--;return 0;
}

编写函数在main中进行测试,也是有.h文件,不需要.c文件。

#include "LinkList.h"void test01(){LinkList_t* table = createLinkList();for (int i = 0; i < 10; i++) {insertLinkListHeader(table, i + 100);}showLinkList(table);printf("====================\n");deleteLinkList(table, 109);deleteLinkList(table, 104);showLinkList(table);printf("********************\n");insertLinkListPos(table, 5, 6);showLinkList(table);}int main() {test01();return 0;
}

在我编写这些代码时,node_t* p = &link_table->head.next;这一行代码出错了,在进行调试后发现。去掉&就行,指针变量p=指针变量next,不需要进行&的取址操作。
3.关于AS重新下载这件事。今天发现自己新建项目之后,项目自带的类出现了报错,显示该类不存在。应该是缺少相应的依赖。加之我之前把AS下到c盘和它的迁盘操作,索性就删除重新下载。

在第一次加载项目时,怎样能更快地build出基本项目?
第一步,找到项目中的

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

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

相关文章

pycharm连接autodl服务器

昨天听舍友说,他们第一个实验都跑完了,瞬间焦虑起来,原来落后这么多,完事昨天晚上7点开始看教程,配环境,看了好几个教程,每个教程都不一样竟然!然后问舍友,舍友说:你先知道你要跑什么项目,我说:我知道啊,我要做什么项目,想要什么结果,我都知道,项目和代码都有,…

shell脚本报错:test.sh: line 2: $\r: command not found

问题 在win上写好shell脚本,传到linux服务器运行调试的时候报错:test.sh: line 2: $\r: command not found 原因 这个错误是由于脚本文件的换行符问题引起的。Windows和Linux系统的换行符不同:Windows使用\r\n(回车+换行)。 Linux使用\n(换行)。脚本是在Windows上编辑的…

Power Apps 技术分享:制作响应式布局

前言Power Apps的一大优势就是可以不用多长时间,就能够配置出响应式布局。正文1.我们先新建一个屏幕,用来演示,如下图:2.添加一个横向容器,修改一下宽和高,根据屏幕尺寸自适应,如下图:逻辑应该蛮好理解的,就是用app的宽,减去当前控件距离顶部的距离的两倍,也就是上下…

day:22 python函数(5)——常用函数

一.len函数 print(len(列表名)) 定义:返回一个内容长度 案例: list=[1,2,3,4,5,6] print(len(list))二.abs 绝对值 print(abs(数值))输出绝对值 案例: a=-9 print(abs(a))三.id() print(id(表名)) 返回一个对象地址,返回对象唯一地址,标示一个整数 list=[1,2,3…

day:22 python函数(4)——文档

一.打开文档 open函数 open() 函数用于打开一个文件,创建一个 file 对象 语法:open(file, mode),模式有r(只读),w(写入覆盖), a(写入追加) (1)查看open所有功能 按住ctrl键,鼠标点击open关键字,查看用法(2)读取python中复制的路径 a.复制py文件的路径 path1=r"C:\U…

day:22 python函数(3)——内置函数和压缩

一.python的内置函数二.内置函数使用 1.format()函数 定义:是一格式化字符串,可以将变量或值插入到字符串的特点位置,使字符串的建构更加的灵活和易读,增强了字符串格式的功能. 2.基本语法 通过{}来代替以前的% 3.案例 a.不设置指定位置,默认顺序 hz="{}{}".format…

Android开发--Lesson01--页面布局

一.View视图 在Android开发中所有的UI元素都是由View和ViewGroup构建而成的。ViewGroup作为一个容器既可以装载View视图空间,同时也可装载ViewGroup。即一种布局可以嵌套另一种布局。二.ViewGroup RelativeLayout RelativeLayout是Android中一种非常灵活的布局方式,它允许子…

第十八届全国大学生信息安全竞赛暨第二届“长城杯”铁人三项赛web方向部分wp

第十八届全国大学生信息安全竞赛暨第二届“长城杯”铁人三项赛web方向部分wp hello_web查看源代码发现有两个文件,访问一下Tips是phpinfo 里面可以看到disable_functions hackme.php中$lapUCm=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%…

使用WLAN接口将温度和相对湿度发送到家庭网络web服务器

在本文中,我想利用WLAN接口,为家庭网络中的web服务器提供温度和相对湿度。但是,我将使用物有所值的DHT20传感器和带有SH1106驱动IC的1.3英寸OLED,以尽量减少重复。 但首先是树莓派Pico W的引脚图,以及树莓派Pico和Pico W的区别:虽然外形尺寸和引脚(很大程度上)保持不变,…

【水】洛谷 P3913 (待续)

今天NaN在刷水题时碰到这么一道题:洛谷P3913 https://www.luogu.com.cn/problem/P3913 代码的思路特别简单:用全部格子数 - 没被車侵占的行数 \(\times\) 列数即可. code void solve() {cin >> n >> k;g = h = n;for (ll i = 1; i <= k; i++){cin >> x …

web77笔记(POST+FFI)

web77 命令执行最后一题,php7.4 FFI,php7.4以上才有 https://www.php.net/manual/zh/ffi.cdef.php https://www.php.cn/php-weizijiaocheng-415807.html $ffi = FFI::cdef("int system(const char *command);");//创建一个system对象 $a=/readflag > 1.txt;//没…

day:22 python函数——介绍及自定义函数运用

一.函数的定义 函数是组织好,可以重复使用,用来实现单一,或者关联功能的代码段 二.pycharm中运用的结构三.函数的优点? a.降低代码的冗余 b.增加代码的复用性,提高开发效率 c.提高程序的拓展性 d.把代码片段放在函数当中 四.定义函数 (1)自定义函数 (一)自定义函数 a.函数格式…