
C语言&数据结构与算法
文章平均质量分 53
C语言的帖子以及平时自己积累的数据结构与算法原理和习题分析
唐宋元明清-东西南北中
尽力做到不卑不亢的成长吧!
展开
-
数据结构与算法笔记-6の链表の反转链表的递归实现与图示
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?原创 2023-07-22 09:31:37 · 322 阅读 · 0 评论 -
程序员面试宝典笔记3-循环递归与概率
程序员面试宝典笔记3-循环递归与概率递归基础典型递归问题循环与数组问题螺旋队列问题概率原创 2021-10-18 10:24:31 · 258 阅读 · 0 评论 -
C语言-链表和字符串翻转
链表翻转typedef struct Node{ int data; Node * next;}Node, *pNode;pNode LinkReverse(pNode pLink){ pNode pf, pq, pr; pf = pLink; pq = pf->next; while (NULL != pq) { pr = pq->next; pq->next = pf; pf = pq; pq = pr; } pLink->next原创 2021-10-18 10:23:44 · 223 阅读 · 0 评论 -
数据结构与算法@双向链表
双向链表双向链表的数据结构双向链表的建立双向链表的插入节点双向链表的删除节点双向链表的遍历双向链表的长度双向链表查找节点双向链表替换节点主函数http://c.biancheng.net/view/3343.html双向链表的数据结构typedef struct line{ struct line * prior; //指向直接前趋 int data; struct line * next; //指向直接后继}line;双向链表的建立line* initLine(lin原创 2020-09-19 20:26:55 · 315 阅读 · 0 评论 -
程序员面试宝典笔记4-位运算与嵌入式编程
程序员面试宝典笔记4-位运算与嵌入式编程位制转换嵌入式编程static原创 2020-08-14 22:12:07 · 324 阅读 · 0 评论 -
程序员面试宝典笔记2-指针与引用
程序员面试宝典笔记2-指针与引用指针基本问题传递动态内存函数指针指针数组与数组指针迷途指针指针和句柄this指针 (C++)原创 2020-08-13 18:03:43 · 224 阅读 · 0 评论 -
程序员面试宝典笔记1-基本概念&预处理,const与sizeof
程序员面试宝典笔记1-基本概念&预处理,const与sizeof基本概念预处理constsizeof原创 2020-07-27 16:40:12 · 208 阅读 · 0 评论 -
练习编程6:数据结构与算法の排序の冒泡+选择排序+希尔排序+堆排序
#include <stdio.h>#include <malloc.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0struct Array{ int *arr; int length;}arrNode;int init_array(struct Array *array, int *init_arr){ int i=0, cnt=0; //跳过哨兵 while(init_ar原创 2020-05-16 16:49:20 · 361 阅读 · 1 评论 -
练习编程5:数据结构与算法の查找の哈希表/哈希查找
查找の哈希表/哈希查找散列函数采用的是 除留取余法;冲突解决采用的是 开放定址法线性探测;#include <stdio.h>#include <malloc.h>#include <stdlib.h>#define SUCCESS 1#define OK 1#define UNSUCCESS 0#define HASHSIZE 10 //表长#define NULLKEY -32768typedef struct HashTable{原创 2020-05-15 20:02:58 · 180 阅读 · 0 评论 -
数据结构与算法10の查找のB树(2-3树,2-3-4树)
查找のB树1. 2-3树1.1 概念1.2 插入(创建)1.3 删除2. 2-3-4树2.1 概念2.2 插入(创建)2.3删除3. B树1. 2-3树1.1 概念2-3树中每一个结点都具有两个孩子(2结点)或者三个孩子(三结点)一个二结点有以下特性:包含一个元素同时有两个孩子或者没有孩子一个三节点有以下特性:包含两个元素同时有三个孩子或者没有孩子1.2 插入(创建)这里举一个实例,从头来创建2-3:7,1,2,5,6,9,8,4,37, 1,2, 5, 6, 9,原创 2020-05-14 23:07:50 · 319 阅读 · 0 评论 -
数据结构与算法9-2の查找の平衡二叉树(AVL)-仍有不理解的地方
查找の平衡二叉树(AVL)代码实现1.RR1. 示意图2.代码实现2.LL1. 示意图2.代码实现3.LR1. 示意图2.代码实现4.RL1. 示意图2.代码实现《大话数据结构》中的代码实现,调整讲法和 9-1 的浙江大学数据结构与算法有所不同。主要是RL,LR这两种的讲法,下面再列出‘大话’的讲法。- RL- LR1.RR1. 示意图2.代码实现2.LL1. 示意图2.代码实现3.LR1. 示意图2.代码实现4.RL1. 示意图2.代码实现...原创 2020-05-12 12:02:16 · 368 阅读 · 0 评论 -
数据结构与算法9-1の查找の平衡二叉树(AVL)
查找の平衡二叉树(AVL)1. 定义2. AVL的调整2.1 AVL调整分类与策略2.2 代码实现浙江大学数据结构与算法1. 定义平衡二叉树是一种搜索二叉树(或查找二叉树),其中每一个结点的左子树和右子树的高度差的绝对值都不大于1。高度差定义为平衡因子(BF):BF(T)=hL−hRBF(T)=h_{L}-h_{R}BF(T)=hL−hR2. AVL的调整当插入元素后破坏了二叉平衡树的平衡时,需要对其进行调整。视频中,对不平衡的元素起了特称:引起不平衡的元素是麻烦结点,被破坏不平衡的元原创 2020-05-11 21:10:21 · 260 阅读 · 0 评论 -
数据结构与算法8の查找の搜索二叉树
查找の搜索二叉树1. 查找算法1. 通用查找算法2. 最大/最小元素查找算法2. 插入3. 删除浙江大学数据结构与算法1. 查找算法1. 通用查找算法/* 二叉搜索树数据结构 */typedef struct BiNode{ ElemType data; struct BiNode *lchild,*rchild;}BiNode,*BiTree;/* 尾递归的实现方式 */Position Find(ElemType key, BiTree BST){ if(BST==NU原创 2020-05-11 16:50:57 · 264 阅读 · 0 评论 -
数据结构与算法笔记8-查找
数据结构与算法8-查找1. 顺序表查找2.有序表查找2.1 折半查找算法2.2 插值查找算法2.3 斐波那契查找算法3.线性索引查找3.1 稠密索引3.2 分块索引3.3 倒排索引4.二叉排序树静态查找1. 顺序表查找从头到尾逐个遍历int Sequential(int *a, int n, int key){ a[0] = key; //设置哨兵 int i=n; while(a[i] != key) { i--; } return i; //若返回 0,则说明查找失败}2原创 2020-05-11 14:17:30 · 364 阅读 · 0 评论 -
LeetCode刷题☞Tag☞链表
链表1. 找出两个链表的交点(#160)2. 链表反转(#206)1.1 迭代循环实现1.2 递归实现3. 归并两个有序的链表4. 从有序链表中删除重复节点5. 删除链表的倒数第 n 个节点6. 交换链表中的相邻结点7. 链表求和8. 回文链表9. 分隔链表10. 链表元素按奇偶聚集1. 找出两个链表的交点(#160)题目描述:例如以下示例中 A 和 B 两个链表相交于 c1:这里注意,...原创 2020-04-29 11:55:33 · 336 阅读 · 1 评论 -
数据结构与算法笔记7の堆
堆--heap 1.堆的基本知识1.1堆的两个特性:2.堆的存储结构3.最大空堆的建立4.堆的插入5.堆的删除6.最大堆的建立全部程序1.堆的基本知识堆(heap)是用优先队列(priovity Queue)实现的,优先队列是一种特殊的“队列”,取出元素顺序为优先权(关键字)的大小,而不是元素进入队列的先后顺序。1.1堆的两个特性:结构性:用数组表示的完全二叉树;有序性:任一结点的关...原创 2020-04-28 14:49:51 · 401 阅读 · 0 评论 -
数据结构与算法笔记-6の链表の把单链表的前K个结点反转
把单链表的前K个结点反转1. 分解演示2. 代码3. 延伸这是一道微软的面试题改编而来,在浙大陈越姥姥的数据结构与算法课上看到,在这里整合一下。1. 分解演示2. 代码Ptr Reverse( Ptr head, int K ){ cnt = 1; new = head->next; old = new->next; while( cnt <...原创 2020-04-28 10:39:56 · 320 阅读 · 0 评论 -
数据结构与算法笔记5の各类数据的存储结构总结
各类数据的存储结构总结1. 线性表1.1 线性表顺序存储1.2 线性表链式存储1.3 线性表静态存储2. 栈与队列2.1 顺序栈2.2 链栈2.3 顺序队列2.4 链队列3. 树3.1 二叉树顺序存储3.2 二叉树链式存储3.3 线索二叉树4. 图4.1 邻接矩阵4.2 邻接表5. 散列表6. 排序声明:本帖由《大话数据结构》源代码整理而成1. 线性表宏定义:#define MAXSIZE...原创 2020-04-26 15:06:15 · 343 阅读 · 0 评论 -
练习编程4:数据结构与算法の线性结构の栈与应用
数据结构与算法の线性结构の栈1. 栈的操作2. 栈的应用-表达式1. 将中缀表达式转化为后缀表达式2. 将后缀表达式转化为运算结果举例自己学习数据结构的编程练习;平台:MacOS Catalina软件:Xcode时间:20 mins1. 栈的操作#include <stdio.h>#include <stdlib.h>#include <malloc....原创 2020-04-24 10:54:11 · 232 阅读 · 0 评论 -
二叉树的层序遍历/ 树的同构/ 搜索二叉树凌乱笔记整理
二叉树的层序遍历/ 树的同构/ 搜索二叉树1. 层序遍历2. 树的同构3. 搜索二叉树这节课是来自浙大陈越姥姥的数据结构课程笔记。1. 层序遍历2. 树的同构3. 搜索二叉树...原创 2020-04-21 22:41:07 · 231 阅读 · 0 评论 -
数据结构与算法笔记4-字符串のKMP
字符串匹配算法-KMP1. KMP算法快速了解2. KMP算法详解教程3. 挖墙脚这两个链接是在B站上发现的,这哥们讲的挺好,全部配合着PPT的动画来讲KMP,因为KMP算法本身就听mmp的难懂,可能需要多看几遍才能懂得KMP为甚这么设计,为什么代码是这么写的等。1. KMP算法快速了解戳这里->KMP算法易懂版2. KMP算法详解教程戳这里->KMP算法详解版3. 挖...原创 2020-04-18 00:11:10 · 269 阅读 · 0 评论 -
数据结构与算法笔记3-时间复杂度分析
算法时间复杂度分析基本概念:案例分析总结基本概念:T(n) = O( f(n) ), 其中 f(n) 为执行次数案例分析T(n)=O(n)T(n) = O(n)T(n)=O(n)int x = 0;int y = 1;int temp = x;T(n)=O(n)T(n)=O(n)T(n)=O(n)for(int i=0; i<=n; i++) x++;T(...原创 2020-04-16 22:48:38 · 219 阅读 · 0 评论 -
练习编程7:数据结构与算法の排序[快速排序]
排序冒泡插入选择快速排序以下为快速排序的程序练习#include "stdio.h"#include "string.h"#include "ctype.h"#include "stdlib.h"//#include "io.h"#include "math.h"#include "time.h"#define OK 1#define ERROR 0#defi...原创 2020-04-16 11:26:27 · 195 阅读 · 0 评论 -
数据结构与算法笔记2-非线性结构の树
本节是树的一些知识,为了防止忘记,写个帖子记录!定义:专业定义:有且只有一个成为根的结点有若干个互不相交的子树,这些子树本身也是一棵树通俗的定义:树是由结点和边组成每个节点只有一个父节点,但可以有多个子节点但有一个结点例外,该节点没有父节点,此节点称为根节点专业术语:结点、父节点、子节点、根节点、子孙 、堂兄弟深度:从根节点到最底层结点的层数称之为深...原创 2020-04-16 11:19:30 · 193 阅读 · 0 评论 -
练习编程6:数据结构与算法の非线性结构の二叉树的创建与遍历
自己学习数据结构的编程练习;平台:MacOS Catalina软件:Xcode时间:10.2 mins这棵树的结构为:#include <stdio.h>#include <malloc.h>typedef struct BiTree{ char data; struct BiTree * pLBiTree; struct BiT...原创 2020-04-16 11:05:19 · 169 阅读 · 0 评论 -
练习编程5:数据结构与算法の递归
自己学习数据结构的编程练习;平台:MacOS Catalina软件:Xcode时间:10 minsint main(void){ int n; char ch1 = 'A'; char ch2 = 'B'; char ch3 = 'C'; printf("请输入汉诺塔的盘子个数: "); scanf("%d",&n); hannuota(n,...原创 2020-04-16 10:49:42 · 135 阅读 · 0 评论 -
练习编程4:数据结构与算法の线性结构の栈与其应用
自己学习数据结构的编程练习;平台:MacOS Catalina软件:Xcode时间:20 mins#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define TRUE 1#define FALSE 0#define ERROR 1#define OK 1typedef ...原创 2020-04-16 10:46:30 · 188 阅读 · 0 评论 -
练习编程3:数据结构与算法の线性结构の循环队列
自己学习数据结构的编程练习;平台:MacOS Catalina软件:Xcode时间:20 mins#include "stdio.h"#include "string.h"#include "ctype.h"#include "stdlib.h"//#include "io.h"#include "math.h"#include "time.h"#define OK 1#...原创 2020-04-12 23:54:20 · 195 阅读 · 0 评论 -
练习编程2:数据结构与算法の线性结构の离散存储[链表]
自己学习数据结构的编程练习;平台:MacOS Catalina软件:Xcode时间:1h#include "stdio.h"#include "string.h"#include "ctype.h"#include "stdlib.h"//#include "io.h"#include "math.h"#include "time.h"#define OK 1#defin...原创 2020-04-10 21:27:56 · 118 阅读 · 0 评论 -
练习编程1:数据结构与算法の线性结构の顺序存储[数组]
#include <stdio.h>#include <malloc.h>#include <stdlib.h>#define MAXSIZE 10#define True 1#define False 0struct Arr{ int cnt; int len; int * pBase;};int initial_Arr(stru...原创 2020-04-09 22:13:31 · 205 阅读 · 0 评论 -
数据结构与算法笔记1-线性结构の顺序存储[数组]
郝斌-数据结构与算法笔记1-线性结构の顺序存储[数组]1. 预备知识1.1 概念1.2 结构体1.3 指针指针2. 顺序存储代码与讲解2.1 全部程序2.2 课堂重点讲解我的数据结构学习之路:数据结构从大二就想学习,当时看的是浙江大学陈越姥姥的网课和书,看不懂听不懂难受,遂放弃。大四深圳实习,技术老大说你不学数据结构怎么可以,把他上大学时的书借我让我学,由于实习期间实在学不动,遂放弃。研一上学...原创 2020-04-09 18:47:27 · 336 阅读 · 0 评论 -
线性表的链式存储-头插法创建链表
线性表的链式存储-头插法创建链表1. 代码2.算法过程动图3.算法分解图1. 代码void CreateListHead(LinkList *L, int n){ LinkList p; int i; *L = (LinkList)malloc(sizeof(Node)); (*L)->next = NULL; for (i = 0; i < n; i++) { ...原创 2020-01-03 21:55:49 · 626 阅读 · 0 评论