![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 78
文曲尽墨琛乃缺
江天一色无纤尘,鱼龙潜跃观道身
天人焉有两般义,道不虚行只在人。
展开
-
数据结构(一)线性表(顺序表实现的功能)
头文件#ifndef SEQUENCELIST_H#define SEQUENCELIST_H //必须和上面的一模一样,而且是大写#include<stdio.h>#include<stdlib.h>#include<time.h> //用到的头文件#define SIZE 10 #define SUCCESS 10000...原创 2019-08-02 09:23:20 · 565 阅读 · 1 评论 -
数据结构(十一)8种排序
1.直接插入排序#include<stdio.h>void InsertSort(int *a, int length){ int i, j, tmp; for(i = 1; i < length; i++) { tmp = a[i]; for(j = i - 1; j >= 0; j--) { if(a[j] > tmp) { ...原创 2019-08-14 21:19:20 · 229 阅读 · 0 评论 -
数据结构(九)二叉树
树的概念:树树(Tree)是n(n>=0)个结点的有限集。n=0的时候称为空树,在任意一颗非空树中:(1)有且仅有一个特定的称为根(root)的结点;(2)当n>1时,其余结点可以分为m(m>0)个互不相交的有限集T1、T2、T3…Tm,其中,每一个集合本身又是一棵树,并且称为跟的子树。结点:树的结点包含一个数据元素及若干个指向其子树的分支。度:结点拥有的子树称为结点...原创 2019-08-10 15:09:12 · 285 阅读 · 0 评论 -
数据结构(八)队列(链式)实现的功能
头文件#ifndef LINKQUEUE_H#define LINKQUEUE_H#include<stdio.h>#include<stdlib.h> #define SUCCESS 10000#define FAILURE 10001#define TRUE 10002#define FALSE 10003struct QueueNode ...原创 2019-08-09 21:13:48 · 240 阅读 · 0 评论 -
数据结构(四)线性表中链表:双向循环链表功能的实现
循环链表是单链表的变形。循环链表最后一个结点的 link 指针不 为NULL,而是指向了表的前端。(指向头结点)为简化操作,在循环链表中往往加入表头结点。循环链表的特点是:只要知道表中某一结点的地址,就可搜寻到所有其他结点的地址。结构特点:头文件#ifndef CIRCLEDOUBLELINKLIST_H#define CIRCLEDOUBLELINKLIST_H 4 ...原创 2019-08-06 23:31:02 · 370 阅读 · 0 评论 -
数据结构(三) 双向链表的功能实现
双向链表是指在前驱和后继方向都能游历(遍历)的线性链表。双向链表每个结点结构:前指针域 prior | 数据域data | 后指针域 next前指针指向前驱方向,上一个结点;后指针指向后继方向,也就是下一个结点。这样指针就可与任意访问后面或者前面的,指针就可以不受单链表的约束,向前或向后移动。双向链表通常采用带表头结点的循环链表形式。头文件#ifndef DOUBLELINKLI...原创 2019-08-06 22:41:10 · 217 阅读 · 0 评论 -
数据结构(七)队列(顺序)实现的功能
队列是特殊的线性表;队列仅在线性表两端进行操作;队头(Front):取出数据的一端;队尾(Rear):放入数据的一端;性质: 先进先出。长度= rear -front=(rear - front +size) %size SIZE是容量,上图中容量是11,长度10判断队满 : rear + 1 == front(rear + 1) % size == fron...原创 2019-08-08 20:46:55 · 295 阅读 · 0 评论 -
数据结构(六)栈(链表形式)实现的功能
链式栈的存储形式栈的链式存储结构:栈的链式存储结构,简称为链栈;栈顶放在单链表的头部;链栈是不需要头结点的。链栈不存在栈满的情况。头文件#ifndef LINKSTACK_H#define LINKSTACK_H#include <stdio.h>#include <stdlib.h>#include <time.h>#define...原创 2019-08-08 11:33:14 · 279 阅读 · 0 评论 -
数据结构(五)(顺序)栈实现的功能
栈是一个特殊的线性表,只能在一端操作;栈顶(top):允许操作 的一端;栈底(bottom):不允许操作的一端栈的性质: 先进后出,后进先出.1.栈是限定仅在表尾进行插入和删除操作的线性表;又称 后进先出的线性表。LIFO结构。栈顶top:允许插入和删除的一端;栈底bottom:另外一端;2. 空栈:不含任何数据元素的栈;top=-1;3. 栈的操作:进栈,压栈,入栈...原创 2019-08-08 10:30:08 · 218 阅读 · 0 评论 -
数据结构(二)线性表(链表实现的功能)
链表链接表是线性表的链接储存表示。特点:每个元素(表项)由结点(Node)构成。一个元素有8byte;4byte的数据,4byte的指针(存放下一个节点的地址)4byte date | link 4byte线性结构 :结点可以连续,可以不连续存储结点的逻辑顺序与物理顺序可以不一致表可扩充头文件#ifndef LINKLIST_H#define LINKLI...原创 2019-08-04 17:03:02 · 336 阅读 · 0 评论 -
数据结构(十)线性表的结构体定义归纳总结
1.顺序表struct SequenceList{int *data; //定义一个指针,指向数据。int length;};除了查找元素,位置,查看长度。其他初始化,插入,删除,清空,销毁都要取地址(修改实参的值)在main主函数里,定义的是一个变量 seq list;2.链表(单链表)Struct Node{ElemType data; (typedef i...原创 2019-08-11 16:58:39 · 871 阅读 · 0 评论