链表
无
kyriekk
这个作者很懒,什么都没留下…
展开
-
可变数组^
1--首先这里定义这个结构为啥没有去直接typedef struct{}*Array;如果定义结构指针后面很多函数所需要的结构都是传指针进去,方便了不少,但是如果你想在一个函数中只是传值不传指针,就无法做到,而且你在函数中Array a;一般不容易想到你定义了一个指针,不符合常规操作。...原创 2022-04-11 11:58:38 · 322 阅读 · 0 评论 -
可变数组转链表
虽然可变数组讲的这么完整,看上去也很完美,但是它是有缺陷的1--每次数组长度不够的时候,我们要重新申请空间然后拷贝,数组越大,拷贝花的时间就越长。2--而是申请空间牵扯出的内存分配问题,虽然我们现在电脑内存很大,似乎不用担心这个问题,但如果你在一个单片机这种内存受限的场合,你很快就会遇到这个问题。下图是可变数组申请内存时的方式导致的问题: 因为申请的是一片连续的空间,所以无法用到每个角角落落,简而言之就是不合理分配,没有高效利用内存空间。3--假如我们有一种方法,我们不去申请一个更大的空间,原创 2022-04-12 14:32:59 · 178 阅读 · 0 评论 -
链表的创建
相当于整个链表是依靠指针串联起来的。需要注意每一个结点也是一个指针,每个结点(即结构)里还有一个指针。--node.h--#ifndef _NODE_H_#define _NODE_H_typedef struct node{ int value; struct node *next;}node;#endif--node.h--#include <stdio.h>#include "node.h"//typedef struct no...原创 2022-04-12 15:49:07 · 9457 阅读 · 0 评论 -
链表的函数
如题所示,本文是围绕链表与函数展开的,也就是如何传进传出以及遇到的问题。1--首先观察如下代码,这是之前的知识(套中套那部分),指针p指向一个int变量k,指针pp指向p,注意他们都是一级指针,所以这里的指针pp紧紧是指向,他具有修改*p也就是k的值的能力,但是!他并没有改变p的地址的能力。#include <stdio.h>int main() { int k=0; int* p=&k; int* pp=p; *pp=2; printf("%d",k);原创 2022-04-15 13:39:07 · 1250 阅读 · 0 评论 -
链表的遍历输出和搜索
1--在主函数中遍历:应该就一个关键点,即是使用p!=NULL还是p->next!=NULL。还有就是for循环的妙用。--main.h--#ifndef _MAIN_H_#define _MAIN_H_#include <stdio.h>#include <stdlib.h>typedef struct node{ int value; struct node *next;}node;#endif--main.c--#in原创 2022-04-18 15:08:24 · 1266 阅读 · 0 评论 -
链表的删除和清除
这个代码实现的是查找指定的值并删除后输出所有数,如果要实现删除第几个之类 的代码也差不多。--main.h--#ifndef _MAIN_H_#define _MAIN_H_#include <stdio.h>#include <stdlib.h>typedef struct node{ int value; struct node *next;}node;#endif--main.c--#include "main.h" //type原创 2022-04-18 16:12:47 · 1112 阅读 · 0 评论