数据结构
避坑记录
努力奋斗的年纪只管努力奋斗
展开
-
循环单链表(C语言)
这个功能的实现还是踩了点坑的,但是让我明白了打印真的很重要这里代码块有两部分,第一段是没有打印的代码。第二段是有打印的代码,想研究的话可以运行一下第二段代码。#include <stdio.h>#include <stdlib.h>typedef struct Node { int data; struct Node *next;}Node,*LinkList;// 初始化LinkList initList () { LinkList.原创 2022-05-06 13:26:09 · 652 阅读 · 0 评论 -
单链表合并(C语言)
#include <stdio.h>#include <stdlib.h>// 合并两个有序链表// 定义链表结构typedef struct Node { int data; struct Node *next;}Node,*LinkList;// 初始化LinkList initList() { LinkList L = (Node *) malloc (sizeof(Node)); L->next = NULL; .原创 2022-05-04 21:48:58 · 3432 阅读 · 0 评论 -
数据结构单链表删除(C语言)
#include <stdio.h>#include <stdlib.h>// 定义链表结构typedef struct Node { int data; struct Node *next;}Node,*LinkList;// 初始化列表LinkList initList() { LinkList L = (Node *) malloc (sizeof(Node)); L->next = NULL; return L;.原创 2022-05-04 20:38:19 · 3000 阅读 · 0 评论 -
单链表插入(C语言)
#include <stdio.h>#include <stdlib.h>// 插入:在第i个位置 之前 插入元素e/** p = L 与 p = L->next 的使用* 此时:LinkList 为空 ===> p = L* 此时: LinkList 非空 ===> p = L->next*/// 链表结构定义typedef struct Node { int data; struct Node *ne.原创 2022-05-03 22:38:56 · 2187 阅读 · 0 评论 -
求单链表长度(C语言)
#include <stdio.h>#include <stdlib.h>// 求链表长度// 定义链表类型typedef struct Node { int data; struct Node *next;}Node,*LinkList;// 初始化LinkList initList () { LinkList L = (Node *) malloc (sizeof(Node)); L->next = NULL; .原创 2022-05-03 22:04:20 · 9064 阅读 · 4 评论 -
单链表的查找(C语言)
这段代码里写了两种查找,按位置查找,按值查找。再看代码前有一点瑕疵需要记录。就是这两个警告。警告的意思就是代码里并不是每一个判断语句里都有返回值。找到警告出现的位置。就是我写的两个查找的函数里,我为了能够展示出效果来所以写了printf输出语句。所以为了看到效果,我下面的运行结果图并没有注释这里,所以警告还存在,但是不影响结果。接下来,为了代码的严谨,我将上面输出语句注释了。修改如下(有两种方案):方案一:函数类型是 int, 结束语句就是 return 1; 方案二原创 2022-05-03 21:25:31 · 4436 阅读 · 0 评论 -
数据结构,尾插法创建单链表(C)
#include <stdio.h>#include <stdlib.h>// 链表结构定义typedef struct Node { int data; struct Node* next;}Node,*LinkList;// 初始化链表LinkList initList_2() { LinkList L = (Node *) malloc (sizeof(Node)); L->next=NULL; return L;.原创 2022-05-02 23:01:47 · 740 阅读 · 0 评论 -
C语言初始化单链表,创建单链表(学生党一看必会)
#include <stdio.h>#include <stdlib.h>// 单链表的存储结构typedef struct Node { int data; struct Node* next;}Node,*LinkList;/** Node,*LinkList 应用的时候的区别 * Node: 使用的时候是 Node ** *LinkList: 使用的时候是 LinkList* 写的习惯:* LinkList: 用来定义函数,和函数参数.原创 2022-05-02 20:17:24 · 3505 阅读 · 1 评论 -
初学者一看就懂的线索二叉树----数据结构线索化二叉树
1. 用线索化的原因二叉链表作为存储结构是,为了方便、快速找到结点的直接前驱和直接后继。这种动态的访问方法是充分利用二叉链表中的空链域,将遍历过程中结点的前驱、后继信息保存下来。2. 线索二叉树结点的结构有 n 个结点的二叉链表有 2n 个链域;空链域:n+1个;非空链域:n-1 个(两点之间连的线);了解线索的概念按照不同的遍历次序分为:先序线索二叉树、中序线索二叉树、后序线索二叉树3. 算法思想中序线索化采用中序递归遍历算法框架 加线索操作就是访问结点操作 加线索原创 2020-05-29 18:46:43 · 630 阅读 · 0 评论 -
数据结构二叉树先序遍历,输出结点所在层次和某结点的双亲结点
#include <stdio.h>#include <stdlib.h>typedef char DataType;typedef struct Node{ DataType data; struct Node * LChild; struct Node * RChild;}BiTNode,* BiTree;//创建void CreateNode (BiTree *T){ DataType ch; scanf("%c",&ch); if(c.原创 2020-05-26 17:42:10 · 2493 阅读 · 0 评论 -
数据结构输出先序遍历、中序遍历、后序遍历
了解遍历题目:已知二叉树的先序遍历为:A B D E G C F 中序遍历为:D B G E A C F 则后序遍历为:画图分析二叉树遍历的代码(递归算法)typedef:为了给用户自定义的数据类型取一个新的名字#include <stdio.h>#include <stdlib.h>typedef char DataType;typedef stru...原创 2020-05-22 21:23:41 · 1187 阅读 · 0 评论