- 博客(5)
- 收藏
- 关注
原创 二叉搜索树的线索化及遍历
本篇创建的是二叉搜索树,代码包含二叉搜索树的建树以及树的线索化和线索化后的遍历。完整代码如下:#include<stdio.h>#include<stdlib.h>typedef struct LinkedTree{ int data, ltag, rtag; // 数据域,左线索,右线索 struct LinkedTree* rchild; struct LinkedTree* lchild;}TNode;TNode* CreatNode(int data
2021-05-20 16:59:48 168
原创 C语言推箱子小游戏(可以悔步)
悔步是通过链表来实现的,在人物推动箱子移动后,记录人物移动方向和箱子运动情况,记录数据时用头插法,悔步时直接读取链表中数据即可。代码如下://*#include<stdio.h>#include<conio.h> //system("cls") //_getch();#include<windows.h> //Sleep();#include<stdlib.h>int map[10][10] = //游戏地图{ {0,0,0,
2021-02-08 15:13:57 1463
原创 双向链表的插入排序(交换节点)
插入排序需要从后往前遍历寻找可以插入的位置,所以会使用到双向链表typedef struct Node//定义的结构体{ int data; struct Node* per; //记录前驱 struct Node* next;}*List;创建带头节点的双链表List create_list(){ List head = (List)malloc(Size);//#define Size sizeof(struct Node) List p, q = head; if (head
2020-11-16 14:09:37 2892 4
原创 C链表选择排序(交换节点排序)
排序函数的代码如下:void select_sort(struct node* head)//选择排序(升序){ struct node* pre = head; struct node* p = pre->next; struct node* bmin = pre, * min, * lmin;//bmin是min前一个节点,lmin是min后一个节点 struct node* bq, * q; //bq记录q的前一个节点 while (p->next)//至少要有两个数才会进
2020-11-12 23:11:46 1471 3
原创 C链表冒泡排序(交换节点排序)
废话不多说,直接上排序函数吧void sort_list(struct node* head){ struct node* pre, * p, * q; struct node* tail = NULL; if (head) { while (head->next != tail)//传入的是带头节点的链表,为了简便操作 { //头节点未赋值,所以从head->next开始 pre = head; p = head->next;
2020-11-10 23:42:51 2786 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人