免备案自助建站网站,广州珈瑶公司是哪一年注册的,野花香视频在线观看免费高清版,湛江网站建设与网页目录 目录
前言
正文
链表定义#xff1a;
基本创建链表程序#xff1a; 链表结点插入#xff1a; 对角线记忆法#xff1a;
画图理解法#xff1a;
链表结点删除#xff1a;
链表销毁#xff1a; 后语 前言 链表理解方法分享#xff0c;愿你的大脑也能建立一个…目录 目录
前言
正文
链表定义
基本创建链表程序 链表结点插入 对角线记忆法
画图理解法
链表结点删除
链表销毁 后语 前言 链表理解方法分享愿你的大脑也能建立一个链表的指针 正文
链表定义
为什么要熟悉定义总感觉对理解链表会有帮助的。 链表是什么链表是C 高级编程核心。高级编程诶开不开心
链表是相对数组而言的之所以需要链表是因为数组有缺点。
对于链表而言最要命的其实不是庞大的代码量而是逻辑。就像接电路一样搞不懂逻辑看别人继电器之间互锁自锁就像给自己大脑上了一把锁
链表是N个结点离散分配彼此通过指针相连除头结点与尾结点外中间的每个结点只有一个前去结点和一个后续结点 头结点没有前驱结点尾结点没有后续结点。
一堆鬼文字只能辅助理解大部分摘自《手把手教你C语言》。
基本创建链表程序
就像当初学编程从输出“helloworld”一样理解创建链表的过程很重要是基础中的基础这个搞定后后面的一系列删除、插入等就不是问题了的确没那么难理解了。
//#define NDEBUG#include stdio.h
#include stdlib.h#include dbg.htypedef struct node{char *data;struct node *next;
}Sn;//结构体类型通常首字母大写。
Sn *create_list(void);
void print(Sn *list);int main(int argc, char *argv[])
{Sn *list;list create_list();print(list);while(list !NULL){Sn *tmp list;list list-next;free(tmp);}return 0;
}Sn *create_list(void)
{int i;int num;Sn *head malloc(sizeof(*head));Sn *move head; //这是head的秘书debug(%p, move);check_mem(head);printf(你想输入几条数据\n:);scanf(%d, num);getchar();for (i0; inum; i){Sn *fresh malloc(sizeof(*fresh));char *tmp malloc(sizeof(tmp));check_mem(fresh);printf(请输入第%d条数据, i1);scanf(%s, tmp);getchar();fresh-data tmp;fresh-next NULL;move-next fresh;move fresh;debug(%p, move);}return head;
error:exit(-1);
}void print(Sn *list)
{Sn *move list;debug(%p, move);printf(你输入的数据是);while(move-next !NULL){printf(%s, move-next-data);move move-next;debug(%p, move);}printf(\n);
}链表结点插入 对角线记忆法 对角线大家都知道怎么结合程序理解记忆呢如 fresh-next move-next;
move-next fresh 画图理解法
如果以上感觉还是不理解脑袋里绕不过来那就拿笔在纸上画画。 如图假设原来只有move及move-next两块内存现在要插入fresh那么就要先让fresh的next指针指向fmovenext然后movenext指向fresh。顺序不要错不然报错为定义。 其实搞懂链表创建之后其它的理解起来也就没那么难了再看下删除吧。 链表结点删除
void delete(Sn *head)
184 {
185 char num[20] \0;
186 printf(Select the num to delete: );
187 Sn *save malloc(sizeof(*save));
188 Sn *move head;
189 scanf(%s, num);
190 while(move-next ! NULL){
191 if(strcmp(num, move-next-num) 0){
192 save move-next;
193 move-next move-next-next;
194 free(save);
195 save NULL;
196 }
197 move move-next;
198 }
199 printf(dielet it!);
200 }
201//间隔一段时间再看我又用笔画了画才理解也许我该放弃了
链表销毁 while(head ! NULL){save head-next;free(head);head save;
} 所以你废了吗 后语 本以为我已经已如道可以闭关修炼了。结果在即将道基崩塌的一刻幡然醒悟我已再次入魔浮躁不知不觉又侵占吾身特开此篇抑制心魔与尔共勉——20240702 修真小说看多了大脑总喜欢把C语言与 修真联想。以下是部分狂想曲链表是金丹之锁打破它才能成为高手。指针之前是寻找气感理解指针进入练气然后经过later……以后锁链出现了。 哦掌握它得的过程就是破丹期打破了才是新生打不破就是个蛋 一不小心已经过去了一个月了尽管有别的事情但是更多的说明链表不愧是高级部分自学表示真的很难——2024/7/27 4.手把手的吴明杰说实在搞不懂就记住吧 。我正在用这个方法