数据结构与算法实现-C语言
八种数据结构和一些经典算法的实现
WindyLuo微渺
想脚踏实地做好一件事
展开
-
串的模式匹配算法
bf算法,需要对主串进行回溯;kmp算法,去掉了回溯过程,更为快速.(以下代码的next数组还需优化)原创 2023-06-03 11:16:12 · 139 阅读 · 0 评论 -
链队的实现
【代码】链队的实现。原创 2023-06-01 11:56:33 · 131 阅读 · 0 评论 -
中缀表达式的计算(C/C++实现)
中缀表达式:我们日常用的数学计算表达式 后缀表达式(逆波兰表达式):复杂的或者带括号的四则运算,需要先将中缀表达式转化为后缀表达式方便计算机识别,计算时从左往右扫描,数字就入数据栈,直到扫出操作符,先后弹出两个数据栈数据调换顺序进行相应操作,再把每次计算结果压栈,以此类推,最后剩下的就是计算结果 前缀表达式:与后缀表达式相反,计算时从右往左依次扫描 举例 中缀 5+8*2/4+3+4*2*3/3-6 运算符放在中间 后缀 582*4/+3...原创 2021-08-23 15:54:32 · 803 阅读 · 0 评论 -
顺序栈及中缀转后缀表达式的实现
【代码】顺序栈及中缀转后缀表达式的实现。原创 2023-06-01 09:52:44 · 100 阅读 · 0 评论 -
单链表基本操作
free释放空间容易出问题,代码里面尽可能少的借助中间变量来free,直接对原链表进行操作稳妥。原创 2023-05-31 11:32:01 · 69 阅读 · 0 评论 -
二叉树的先序、中序、后序,层序遍历以及叶子结点数量、高度、宽度
#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct node{ int data; struct node *lchild, *rchild;} * BitTree;//构造成二叉有序树void createTree(BitTree &T, int a[], int len){ node *head = (node *)malloc(.原创 2021-12-19 01:22:02 · 523 阅读 · 0 评论 -
链表倒置(不使用栈)
思路步骤:【括号()里面表示后续结点】L:12345(5个结点)设置p1=1(2345)p2=2(345)//待处理的L:1(2345)//1是倒置后的尽头,置空它的next指针---------------设置p1=3(45)//处理了2后剩下的p2=2(1)//当前处理的是2,再接上已处理好的L:12 //p2=3(45)-----------------设置p1=4(5) //处理了3剩下的p2=3(21) //当前处理的是3,再接上已处理好的...原创 2021-10-07 15:46:57 · 123 阅读 · 0 评论 -
内部排序(C语言)
堆排序、快速排序,归并排序,希尔排序原创 2021-10-02 14:24:42 · 184 阅读 · 1 评论