数据结构
数据结构
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 · 437 阅读 · 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 · 452 阅读 · 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 · 837 阅读 · 5 评论 -
【链表】带头结点的双向循环链表
还需改进:creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表!同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。#include <stdio.h>...原创 2019-02-16 19:29:25 · 381 阅读 · 0 评论 -
【链表】带头结点的循环链表
还需改进:creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表!同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。//没写查找函数#include <s...原创 2019-02-16 19:04:49 · 544 阅读 · 0 评论 -
【链表】带头结点的单链表
还需改进:creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表!同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。#include <stdio.h>...原创 2019-02-16 12:38:51 · 309 阅读 · 0 评论 -
【链表】无头结点的单链表 前插,后插,删除,显示等
还需改进:creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表!#include <stdio.h>#include <stdlib.h>#include <time.h>...原创 2019-02-14 21:51:25 · 436 阅读 · 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 · 208 阅读 · 1 评论 -
【栈】用数组
#include <stdio.h>#include <stdlib.h>#define MAX 10enum 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 · 174 阅读 · 0 评论 -
【队】用链表
特别要注意的是,新设定两个指向链表结点的指针,rear和front,其中链表的结构体和指针的结构体定义如下其中指针的结构体是无名结构体。有规定如果结构体中的成员,是一个指向结构体的指针,那么该结构体一定要是本结构体。但是这个无名结构体并不符合这个规定(问了老师我还是不明白为什么,虽然运行没问题,我把无名结构体又加了名字变成有名结构体还是运行没问题。。。)老师甩了这个链接给我:无名结构体...原创 2019-02-19 17:29:51 · 166 阅读 · 7 评论 -
【队】用数组(老师写的,我改正了一点)
老师为了统一函数的形参都用的二级指针,但其实有的一级指针就可以了重点是判断队是空(is_empty)是满(is_full)的函数,还有写入数(push_qeuce)的函数,写入数的函数要判断当队不满但是已达到数组上限是要整个前移。其中buttom所代表的下标+1开始到top所代表的下标结束有数字存放(或者说这些数字是有效的),当数字出队时,buttom先后移再输出指向的数字,但这个数字之后...原创 2019-02-19 10:49:32 · 341 阅读 · 0 评论 -
【二叉树】构建,递归与非递归的前/中/后序遍历
参考https://www.cnblogs.com/polly333/p/4740355.html#好像没在网上看到有释放二叉树结点的函数?但是毕竟用到了malloc,懒得写了,想了一下思路大概是借用递归的前序遍历函数,将printf语句改为push语句将结点压入栈。最后将栈里面的结点依次释放就可以了。或者不用入栈,直接用后续遍历递归的方式释放(把printf改为释放),比前面的更简单一点(如...原创 2019-03-05 14:03:14 · 167 阅读 · 2 评论