
数据结构与算法
笨是逃避的接口
为在职程序员,对三维软件开发感兴趣。
关键字:C/C++/QT,Python,C#,Linux,3D图形学,OpenGL,CAD/CAM,Free CAD,SoildWorks,Robot等。
展开
-
希尔排序算法
#include <stdio.h>#include <stdlib.h>#include <string.h>void println(int array[], int len){ int i = 0; for(i=0; i<len; i++) { printf("%d ", array[i]); } printf("\n");}void swap(int array[], int i, int j){ int temp = a原创 2021-03-14 12:20:36 · 97 阅读 · 0 评论 -
快速排序算法
#include <stdio.h>#include <stdlib.h>#include <string.h>void printArray05(int array[], int len){ int i = 0; for(i=0; i<len; i++) { printf("%d ", array[i]); } printf("\n");}void swap5(int array[], int i, int j){ int t原创 2021-03-14 12:19:42 · 109 阅读 · 0 评论 -
归并算法
#include <stdio.h>#include <malloc.h>void printArray06(int array[], int len){ int i = 0; for(i=0; i<len; i++) { printf("%d ", array[i]); } printf("\n");}void swap6(int array[], int i, int j){ int temp = array[i]; array[i] =原创 2021-03-14 12:18:20 · 76 阅读 · 0 评论 -
选择法
#include <stdio.h>#include <stdlib.h>#include <string.h>void printArray01(int array[], int len){ int i = 0; for(i=0; i<len; i++) { printf("%d ", array[i]); } printf("\n");}void swap01(int array[], int i, int j){ int te原创 2021-03-14 12:17:33 · 178 阅读 · 0 评论 -
插入算法
#include <stdio.h>#include <stdlib.h>#include <string.h>void printArray02(int array[], int len){ int i = 0; for(i=0; i<len; i++) { printf("%d ", array[i]); } printf("\n");}void InertionSort(int array[], int len) // O(n*原创 2021-03-14 12:16:40 · 138 阅读 · 0 评论 -
冒泡算法1
#include <stdio.h>#include <stdlib.h>#include <string.h>void printfArray03(int array[], int len){ int i = 0; for(i=0; i<len; i++) { printf("%d ", array[i]); } printf("\n");}void swap03(int array[], int i, int j){ int t原创 2021-03-14 12:15:42 · 77 阅读 · 0 评论 -
树
文章目录一、树的基本概念1. 概念2. 树的表示法3. 树的逻辑结构4. 树的存储二、二叉树1.基本概念2. 二叉树存储结构3. 遍历二叉树4. 二叉线索树概念二叉树表示法二叉树非递归算法一、树的基本概念1. 概念非线性结构,一个直接前驱,但可能有多个直接后继(1:n),树的定义具有递归性,即树中还有树。2. 树的表示法图形表示法、广义表表示法、左孩子-右兄弟表示法、双亲孩子表示法。3. 树的逻辑结构一对多(1:n),有多个直接后继(如家谱树、目录树等等),但只有一个根结点,原创 2021-03-14 12:10:51 · 104 阅读 · 0 评论 -
队列链式实现
#ifndef _MYLINKLIST_H_#define _MYLINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode{ struct _tag_LinkListNode* next;}LinkListNode;LinkList* LinkList_Create();void LinkList_Destroy(LinkList* list);void LinkList_Clear(LinkList* l原创 2021-03-14 10:34:32 · 87 阅读 · 0 评论 -
Stack设计与实现
文章目录一、Stack基本概念二、Stack常用操作1. 栈的顺序存储设计与实现三、栈的应用1. 就近匹配2. 中缀、后缀一、Stack基本概念栈是一种特殊的线性表栈仅能在线性表的一端进行操作栈顶(Top):允许操作的一端栈底(Bottom):不允许操作的一端二、Stack常用操作创建栈销毁栈清空栈进栈出栈获取栈顶元素获取栈的大小1. 栈的顺序存储设计与实现#ifndef _MYLINKLIST_H_#define _MYLINKLIST_H_typedef vo原创 2021-03-13 17:21:26 · 365 阅读 · 0 评论 -
线性表
文章目录一、线性表的基本概念1. 线性表的定义2. 数学定义3. 性质4.线性表的操作引入库二、线性表的顺序存储结构1、线性表的链式存储插入元素优点和缺点三、循环链表1. 基本概念2. 设计与实现插入基本循环链表的实现3. 优点和缺点四、双向链表1. 基本概念2. 双向链表操作3. 设计与实现4. 优点与缺点一、线性表的基本概念1. 线性表的定义线性表(List)是零个或多个数据元素的集合 ;线性表中的数据元素之间是有顺序的;线性表中的数据元素个数是有限的;线性表中的数据元素的类型必须相同;原创 2021-03-13 16:55:19 · 81 阅读 · 0 评论 -
数据结构与算法基础概念
文章目录一、数据结构与算法的基本概念数据结构指数据对象中数据元素之间的关系数据的逻辑结构数据的物理结构数据的运算二、算法1. 算法的概念2. 算法和数据结构的区别3. 算法特性4. 算法效率的度量Ⅰ.事后统计法Ⅱ. 大O表示法Ⅲ. 算法的空间复杂度总结本篇主要根据王老师的数据结构基本概念写的。一、数据结构与算法的基本概念 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系,并不是研究复杂的算法。 数据:程序的操作对象,用于描述客观事物; 数据的特点: 可以输入到计算机,可以被原创 2021-03-13 15:35:19 · 411 阅读 · 0 评论