
数据结构
数据结构,C语言描述
来车车厘子.
用心写好每一篇博客
展开
-
内排序算法一览
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#include<Windows.h>typedef int keytype;typedef struct { keytype key;/*关键字码*/}RecType;int s[50][2];/*辅助栈s*/void PrintArray(RecType R[],int n){原创 2020-07-30 16:03:23 · 660 阅读 · 0 评论 -
二叉树先中后序递归遍历与非递归遍历、层次遍历
文章目录1 先序遍历1.1 先序遍历递归1.2 先序遍历非递归2 中序遍历2.1 中序遍历递归2.2 中序遍历非递归3 后序遍历3.1 后序遍历递归3.2 后序遍历非递归4 层序遍历1 先序遍历若二叉树为空,则操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树1.1 先序遍历递归void PreviousOrderTraverse(BTNode T) { if (T == NULL) { return; } /* 对节点的操作 */原创 2020-09-13 11:18:16 · 308 阅读 · 0 评论 -
二叉树介绍与代码实现
#include<stdio.h>#include<stdlib.h>typedef char ElemType;typedef struct Node{ ElemType data; struct Node *lchild,*rchild;}BTNode,*BTree;BTree CreatTree(){ int i,j,in;char ch; BTree T=NULL,s[50],q; printf("Please Enter NO,Value:"); s原创 2020-09-13 10:55:00 · 431 阅读 · 0 评论 -
链队的介绍与实现
#include <stdio.h>#include <stdlib.h>#include <time.h>typedef int ElemType;typedef struct queue { ElemType data; struct queue *next;} *Queue;typedef struct linkQueue { Queue front; Queue rear;} *LinkQueue;LinkQueue InitQueu原创 2020-09-02 11:28:05 · 2171 阅读 · 0 评论 -
循环队列的介绍与实现
#include <stdio.h>#include <stdlib.h>#include <time.h>#define MAXSZIE (20)typedef int ElementType;typedef struct SqQueue { ElementType data[MAXSZIE]; int front; int rear;} *Queue;Queue InitQueue(void){ Queue Q =原创 2020-08-06 14:55:52 · 4546 阅读 · 1 评论 -
栈与递归
文章目录1 递归的概念2 递归算法3 递归数据结构4 递归实现1 递归的概念递归是指在定义自身的同时又出现了对自身的调用。如果一个函数在其定义体内直接调用自己,则称直接递归函数;如果一个函数经过一系列的中间调用语句,通过其它函数间接调用自己,则称间接递归函数。说明递归定义的一个例子是斐波那契级数。它的定义可递归表示成:2 递归算法根据斐波那契级数的递归定义,我们可以很自然地写出计算Fib的递归算法。为了便于在表达式中直接引用,我们把它设计成一个函数过程,用C语言描述如下:long原创 2020-08-03 16:43:41 · 1159 阅读 · 0 评论 -
链栈的介绍与实现
链栈:采用链式存储的栈称为链栈链栈的优点在于多个栈共享存储空间和提高其效率,且不存在栈满上溢的情况,通常采用单链表实现,并规定所有操作都是在单链表的表头进行的#include <stdio.h>#include <stdlib.h>typedef int ElementType; // 特殊的线性表,只有在栈顶一端进行插入删除typedef struct node { ElementType data; struct node *Next;原创 2020-08-03 15:51:53 · 2253 阅读 · 0 评论 -
顺序栈的介绍及实现
1 栈从数据结构角度来讲,栈也是线性表,其操作是线性表操作的子集,属操作受限的线性表。但从数据类型的角度看,它们是和线性表大不相同的重要抽象数据类型。◆ 栈是只准在一端进行插入和删除操作的线性表,该端称为栈的顶端。栈顶(Top):线性表允许插入和删除的一端栈底(Bottom):固定的,不允许进行插入和删除的一端2 栈的基本操作从栈顶删除最后一个元素的操作,称为出栈。插入元素到栈顶的操作,称为入栈。对于向上生成的堆栈:入栈口诀:堆栈指针top“先压后加” : S[top+原创 2020-07-27 16:57:36 · 450 阅读 · 0 评论 -
单链表的按位置插入和删除
单链表的按位置插入和删除以下代码实现了 单链表的按位置插入和删除#include <stdio.h>#include <stdlib.h>#include <time.h>typedef int ElementType;typedef struct node { ElementType data; struct node *Next...原创 2020-05-05 19:34:52 · 2861 阅读 · 2 评论 -
头插法和尾插法创建链表(有无头结点)
头插法建表规则:从一个空表开始,读取字符数组a中的字符,生成新节点,将读取的数据存放到新节点的数据域中,然后将新节点插入到当前链表的表头上,直到读完字符数组a的所有元素为止。头插法建表简单,但生成的链表中节点的次序和原数组的次序相反,若希望两者的次序一致,可采用尾插法建立尾插法建表规则:该算法是将新节点插到当前链表的表尾上,为此必须增加一个尾指针rear,使其始终指向当前链表的尾节点代码...原创 2020-05-05 18:04:12 · 2352 阅读 · 1 评论 -
单链表介绍及其实现
链表文章目录链表链表的专业术语:实现链表的专业术语:首节点:存放第一个有效数据的结点;尾结点:存放最后一个有效数据的结点;尾指针指向;头结点:头结点的数据类型和首结点的类型一模一样;头结点是首节点前面的那个结点;头结点并不存放有效数据;设置头结点的目的是为了方便存储数据;头指针:存放头结点地址的指针变量,指向头结点;单链表的插入实现逻辑:链表插入的核心语句:...原创 2020-04-09 11:28:49 · 313 阅读 · 0 评论 -
顺序表的插入删除查找遍历
顺序表的插入删除查找遍历文章目录顺序表的插入删除查找遍历代码运行结果截图代码#define Maxsize 100typedef int ElemType; typedef struct{ ElemType data[Maxsize]; int length;}Sqlist;void Createlink(Sqlist &L){ int a; printf("请...原创 2020-04-02 10:59:35 · 414 阅读 · 0 评论 -
顺序表Sqlist.cpp
顺序表Sqlist.cpp文章目录顺序表Sqlist.cpp顺序表插入逻辑:顺序表删除逻辑:代码演示运行结果顺序表插入逻辑:在表的第i个位置前插入一个元素实现步骤:将第n至第i 位的元素向后移动一个位置;将要插入的元素写到第i个位置;表长加1。注意:事先应判断: 插入位置i 是否合法?表是否已满?应当符合条件: 1≤i≤n+1 或 i=[1, n+1]插入时的平...原创 2020-04-02 10:43:20 · 3575 阅读 · 0 评论 -
数据结构与算法理论概述
数据结构与算法概述文章目录数据结构与算法概述数据结构概述◆ 数据结构涵盖的内容◆ 存储数据算法概述◆ 算法的基本特性◆ 算法设计要求◆ 算法分析数据结构概述狭义上:数据结构是专门研究数据存储的问题;数据的存储包括:个体的存储+个体关系的存储;广义上:数据结构既包含数据的存储也包含数据的操作;对存储数据的操作就是算法;◆ 数据结构涵盖的内容◆ 存储数据至少通过两种结构...原创 2020-04-02 10:17:19 · 289 阅读 · 0 评论