- 博客(7)
- 收藏
- 关注
原创 C计算二叉树节点(节点总数,树深度,双,单,叶子)
1、树深度//树深度int BinTreeDepth(BinTree* T) { //计入左右子树深度 int leftdep, rightdep; if (T == NULL) { return 0; } else { leftdep = BinTreeDepth(T->lchild); //遍历左子树 rightdep = BinTreeDepth(T->rchild);
2022-02-06 16:57:41
3872
原创 C创建二叉树
1.先定义一个二叉树结构体#include <stdio.h>#include <stdlib.h>//定义数据类型typedef char DataType;//定义二叉树typedef struct bittree { DataType data; struct bittree* lchild, * rchild; //左右子树节点指针}BinTree;2.定义二叉树根节点指针int main(){ BinTree*
2022-02-05 12:51:00
661
原创 C语言创建二叉树(前序、中序、后续遍历)
C语言实现以下二叉树前序遍历:先输出根节点,在遍历左子树,最后右子树(根、左、右)中序遍历:先遍历左子树,在输出根节点,最后右子树(左、根、右)后序遍历:先遍历左子树,在遍历右子树,最后根节点(左、右、根)代码如下(示例) :// 二叉树.cpp #include <stdio.h>#include <stdlib.h>//定义数据类型typedef char DataType;//定义二叉树typedef struct b..
2022-02-05 12:45:06
4620
1
原创 C递归逆置单链表
1.先递归使头指针指向最后一个节点。2.将最后一个节点的地址返回给新的头指针 “newhead” 。3.然后依次重队尾指针开始,对里面的指针域进行逆置。4.每次逆置完需要将当前节点的指针域置NULL。5.最后返回新的头结点地址。代码:LinkList InversionList(LinkList head) { if (head->next == NULL) { return head; //返回最后一个结点地址 } LinkList newhea
2022-02-03 21:26:41
2361
1
原创 C语言循环队列
源码:// 循环队列#include <iostream>constexpr auto SIZE = 5;;typedef int DataType;typedef struct cirQueue { DataType data[SIZE]; int front; //队头指针 int rear; //队尾指针 int count; //元素个数}CirQueue;CirQueue* Q; //定
2022-02-03 20:18:38
589
原创 C语言链栈
源码://链栈#include <iostream>typedef int DataType;//栈节点typedef struct stacknode { DataType data; struct stacknode* next;}StackNode;//栈顶指针typedef struct { StackNode* top;}LinkStack;//--------------函数声明-----------------int
2022-01-31 19:12:58
509
原创 递归读取链栈(按入栈顺序读取)
在不进行出栈的情况下读取链栈内数据首先我们需要一个指向栈顶地址的指针,应为c语言要求“实参”和“形参”的类型必须一致,所以我们先创建一个 StackNode* 类型的指针变量 p 来指向栈顶。代码如下:(注:这里case是因为我用了switch做了个简单菜单,源码在另一篇博客:链栈)case 5: if (StackEmpty(S)) { //判断栈空 printf("栈空\n"); break; } StackNo..
2022-01-31 19:10:08
522
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人