数据结构
数据结构
IVever_KB
这个作者很懒,什么都没留下…
展开
-
【链表】带头结点的单向链表 逆序 包括递归与非递归
参考链接 重要函数 Link Reverse1(Link head) { //基本思想就是将原串的首位放尾巴,第二位放尾巴的前一位,最后一位是首位 Link prev = NULL; //prev指向新的串 Link _head = head->next; //_head指向待转置的串的第一个 Link next; if(_head == NULL) { ...原创 2019-07-23 14:57:31 · 459 阅读 · 0 评论 -
【C】通讯录(链表+数据库存储)
/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name: Author:Jerey_Jobs Version:0.1 Date: Description: Funcion List: ****...原创 2019-03-26 14:38:09 · 464 阅读 · 2 评论 -
【C】通讯录(链表+文件存储)
/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name: Author:Jerey_Jobs Version:0.1 Date: Description: Funcion List: ****...原创 2019-03-26 14:23:19 · 847 阅读 · 5 评论 -
【链表】带头结点的双向循环链表
还需改进: creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。 改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表! 同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。 #include <stdio.h>...原创 2019-02-16 19:29:25 · 390 阅读 · 0 评论 -
【链表】带头结点的循环链表
还需改进: creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。 改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表! 同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。 //没写查找函数 #include <s...原创 2019-02-16 19:04:49 · 553 阅读 · 0 评论 -
【链表】带头结点的单链表
还需改进: creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。 改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表! 同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。 #include <stdio.h>...原创 2019-02-16 12:38:51 · 323 阅读 · 0 评论 -
【链表】无头结点的单链表 前插,后插,删除,显示等
还需改进: creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。 改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表! #include <stdio.h> #include <stdlib.h> #include <time.h>...原创 2019-02-14 21:51:25 · 447 阅读 · 1 评论 -
【栈】用链表
链表,队,栈在程序结束前都要注意有无释放表头结点。 这个是带表头结点的,即head指针指向表头,表头中不存放数据,表头下一个指针指向第一个数据 包括 is_malloc_ok create_node create_stack push_stack pop_stack is_empty gettop_stack empty_stack release_stack #in...原创 2019-02-18 22:11:11 · 222 阅读 · 1 评论 -
【栈】用数组
#include <stdio.h> #include <stdlib.h> #define MAX 10 enum return_val {FULL_OK, FULL_NO, EMPTY_OK, EMPTY_NO, PUSH_OK, PUSH_NO, POP_OK, POP_NO, GET_OK, GET_NO}; struct stack_data { ...原创 2019-02-18 16:09:46 · 184 阅读 · 0 评论 -
【队】用链表
特别要注意的是,新设定两个指向链表结点的指针,rear和front,其中链表的结构体和指针的结构体定义如下 其中指针的结构体是无名结构体。有规定如果结构体中的成员,是一个指向结构体的指针,那么该结构体一定要是本结构体。但是这个无名结构体并不符合这个规定(问了老师我还是不明白为什么,虽然运行没问题,我把无名结构体又加了名字变成有名结构体还是运行没问题。。。) 老师甩了这个链接给我:无名结构体...原创 2019-02-19 17:29:51 · 175 阅读 · 7 评论 -
【队】用数组(老师写的,我改正了一点)
老师为了统一函数的形参都用的二级指针,但其实有的一级指针就可以了 重点是判断队是空(is_empty)是满(is_full)的函数,还有写入数(push_qeuce)的函数,写入数的函数要判断当队不满但是已达到数组上限是要整个前移。 其中buttom所代表的下标+1开始到top所代表的下标结束有数字存放(或者说这些数字是有效的),当数字出队时,buttom先后移再输出指向的数字,但这个数字之后...原创 2019-02-19 10:49:32 · 351 阅读 · 0 评论 -
【二叉树】构建,递归与非递归的前/中/后序遍历
参考https://www.cnblogs.com/polly333/p/4740355.html# 好像没在网上看到有释放二叉树结点的函数?但是毕竟用到了malloc,懒得写了,想了一下思路大概是借用递归的前序遍历函数,将printf语句改为push语句将结点压入栈。最后将栈里面的结点依次释放就可以了。或者不用入栈,直接用后续遍历递归的方式释放(把printf改为释放),比前面的更简单一点(如...原创 2019-03-05 14:03:14 · 176 阅读 · 2 评论