![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Halo_nicetomeetyou
天道酬勤
展开
-
顺序队列
队列也是一种特殊的线性表,队列的数据元素及数据元素间的逻辑关系和线性表完全相同,其差别是:线性表允许在任意位置插入和删除数据元素,而队列只允许在其一端进行插入操作,在其另一端进行删除操作。 队列中,允许进行插入操作的一端称为队尾,允许进行删除操作的一端称作队头。插入操作称为入队,删除操作称为出队。 根据队列的定义,每次入队的数据元素都放在原来的队尾的数据元素之后成为新的队尾元素,每次出队的数据元原创 2017-05-10 22:48:20 · 433 阅读 · 0 评论 -
链式队列
我们已经知道,队列是操作受限的线性表,队列有队头和队尾,插入元素的一端称为队尾,删除元素的一端称为队头。 链式队列的队头指针指向队列的当前队头结点位置,队尾指针指向队列的当前队尾结点位置。对于不带头结点的链式队列,出队列时可以直接删除队头指针所指的结点,因此链式队列,没有头结点更方便。一个不带头结点、队列中有数据元素a0,a1,……,an-1的链式队列结构如下图所示: 以下是链式队列的相关操原创 2017-05-11 23:38:53 · 455 阅读 · 0 评论 -
数据结构基础
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 根据数据元素之间关系的不同特性,有以下四类基本结构:集合、线性结构、树形结构、图形结构或网状结构。这四种结构描述的是元素之间的逻辑关系,因此叫做逻辑结构。 数据结构在计算机中的表示(又称映像)称为数据的物理结构,又称存储结构。数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,由此可以得到两种不同的存储原创 2017-04-24 22:55:04 · 306 阅读 · 0 评论 -
线性表的实现及其基本操作
线性表的定义 线性表是最简单最常用的一种数据结构,它是一种能在任意位置进行插入和删除数据元素操作的、由n(n>=0)个相同数据元素组成的线性结构。线性表的抽象数据类型 数据集合 线性表的数据集合可以表示为a0, a1, a2, a3, ……, an-1,每个数据元素的数据类型都是抽象数据元素的数据类型ElemType。 操作集合(在此仅罗列一部分,详细内容请看代码块) a. 初始化原创 2017-04-24 23:26:29 · 3671 阅读 · 0 评论 -
顺序栈
栈可以看做受限的顺序表,它的插入与删除只能在表尾进行,将表尾称为栈顶,表头称为栈底。不含元素的空表称为空栈。根据栈的定义可以知道栈的修改遵循后进先出的原则。 下面给出顺序栈的相关操作:#include<stdio.h>#include<malloc.h>typedef int ElemType;#define INIT_SIZE 10#define INC_SIZE 5typedef s原创 2017-05-07 18:56:47 · 276 阅读 · 0 评论 -
单链表的实现及其操作
单链表中,构成链表的结点只有一个指向直接后继结点的指针域。 1. 单链表的表示方法 2. 单链表中每个结点的结构如图所示 或者如下形式 单链表有带头结点和不带头结点两种结构。把指向单链表的指针称作头指针,头指针所指的不存放数据元素的第一个结点称作头结点。存放第一个数据元素的结点称作第一个数据元素的结点。第一个数据元素结点在带头结点的单链表中是链表中的第原创 2017-04-25 13:33:57 · 469 阅读 · 0 评论 -
插入排序
//插入排序头文件 Sort.h#pragma once#define T int#define MAXSIZE 20typedef T Sqlist[MAXSIZE];void Swap(T *a, T *b){ T tmp = *a; *a = *b; *b = tmp;}//直接插入排序void InsertSort(Sqlist &...原创 2018-04-14 16:10:15 · 206 阅读 · 0 评论 -
静态链表
用数组描述的链表称为静态链表。 C语言中的静态链表的表现形式是结构体数组,结构体变量包括数据域data与游标cur。 这种存储结构,需要预先分配一个较大的空间,但在作为线性表的插入和删除操作时不需移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。#ifndef _STATICLIST_H_ #define _STATICLIST_H_#include<iostream&g...原创 2018-04-14 16:21:37 · 1502 阅读 · 1 评论 -
空间复杂度 时间复杂度
时间复杂度 算法中基本操作重复执行的次数是问题规模n的某个函数f(n),分析f(n)随n的变化情况并确定T(n)的数量级,用”O”表示数量级,来给出算法的时间复杂度。 T(n) = O(f(n)) 该式表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称为算法的渐进时间复杂度,简称时间复杂度。时间复杂度的分析方法 1.时间复杂度就是函数中基本操作所执行的次数...原创 2018-04-06 14:09:37 · 393 阅读 · 0 评论