数据结构
数据结构的知识和理解
iam_leeqing
海纳百川,取则行远
展开
-
6-6 带头结点的链式表操作集 (20分)
本题要求实现带头结点的链式表操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef struct...原创 2020-03-14 15:42:07 · 524 阅读 · 0 评论 -
6-2 顺序表操作集 (20分)
本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef int Positi...原创 2020-03-14 15:39:09 · 895 阅读 · 0 评论 -
数组模拟队列
实现一个队列,队列初始为空,支持四种操作:(1) “push x” – 向队尾插入一个数x;(2) “pop” – 从队头弹出一个数;(3) “empty” – 判断队列是否为空;(4) “query” – 查询队头元素。现在要对队列进行M个操作,其中的每个操作3和操作4都要输出相应的结果。输入格式第一行包含整数M,表示操作次数。接下来M行,每行包含一个操作命令,操作命令为”push x”,”pop”,”empty”,”query”中的一种。输出格式对于每个”empty”和”query”原创 2020-09-23 21:30:37 · 162 阅读 · 0 评论 -
数组模拟栈
实现一个栈,栈初始为空,支持四种操作:(1) “push x” – 向栈顶插入一个数x;(2) “pop” – 从栈顶弹出一个数;(3) “empty” – 判断栈是否为空;(4) “query” – 查询栈顶元素。现在要对栈进行M个操作,其中的每个操作3和操作4都要输出相应的结果。输入格式第一行包含整数M,表示操作次数。接下来M行,每行包含一个操作命令,操作命令为”push x”,”pop”,”empty”,”query”中的一种。输出格式对于每个”empty”和”query”操作都要原创 2020-09-23 21:08:40 · 80 阅读 · 0 评论 -
数组模拟双链表
实现一个双链表,双链表初始为空,支持5种操作:(1) 在最左侧插入一个数;(2) 在最右侧插入一个数;(3) 将第k个插入的数删除;(4) 在第k个插入的数左侧插入一个数;(5) 在第k个插入的数右侧插入一个数现在要对该链表进行M次操作,进行完所有操作后,从左到右输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入的数。输入格式第一行包含整数M,表示操作次数。原创 2020-09-23 18:56:23 · 137 阅读 · 0 评论 -
数组模拟单链表
实现一个单链表,链表初始为空,支持三种操作:(1) 向链表头插入一个数;(2) 删除第k个插入的数后面的数;(3) 在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入的数。输入格式第一行包含整数M,表示操作次数。接下来M行,每行包含一个操作命令,操作命令可能为以下几种:(1) “原创 2020-09-23 17:34:18 · 359 阅读 · 0 评论 -
c,c++队列的实现
队列有两种存储表示,顺序表示和链式表示。顺序队列和顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,尚需附设两个整型变最front和rear分别指示队列头元素及队列尾元素的位置(后面分别称为头指针和尾指针)。//--队列的顺序存储结构-#defineMAXQSIZE100typedefstruct{QElemType*base;...原创 2020-02-09 17:57:16 · 411 阅读 · 0 评论 -
C,C++顺序栈栈,链栈基本操作的实现
栈是限定仅在表尾进行插入或删除的线性表。对栈来说,表尾端有其特殊含义,称为栈顶,相应的,表头端称为栈底,不含元素的空表称为空栈。栈又称为后进先出的线性表。因为和线性表类似,所以栈有两种存储表示方法,分别称为顺序栈和链栈。顺序栈的表示和实现顺序栈的定义#define MAXSIZE 100 //栈顺序存储空间的初始分配量typedef struct{ SElemType *base; ...2020-01-31 18:02:51 · 714 阅读 · 0 评论 -
C,C++单链表基本操作的实现
单链表的定义和表示对于每一个数据元素 a1,除了要存储本身信息外,还要存储下一个数据元素的地址。这里就要用到结构指针。这两部分信息组成的数据元素 a1 的存储映像,称为结点,存储信息的域称为数据域;存储直接后继存储位置的称为指针域。指针域中存储的信息称作指针和链。n 个结点的链结成一个链表,即为线性表。特点:用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)...原创 2020-01-21 20:51:41 · 1722 阅读 · 0 评论 -
C,C++ 顺序表基本操作的实现
线性表的顺序存储结构是一种随机存取的存储结构,高级语言中通常用数组来描述数据结构中的顺序储存结构。#define MAXSIZE 100typedef struct{ Elemtype *elem; //储存空间的基地址 int length; //当前长度 }SqList;一. 初始化顺序表的初始化操作就是构造一个空的顺序表。1.为顺序表L动态分配一个预定...原创 2020-01-20 16:37:49 · 517 阅读 · 0 评论 -
数据结构基础知识的理解(算法和算法分析)
算法是为了解决某类问题而规定的一个有限长的操作序列一个算法必须有五个重要特性:有穷性,确定性,可行性,输入,输出。评价算法优劣的基本标准:正确性,可读性,健壮性,高效性。...原创 2020-01-16 16:48:05 · 527 阅读 · 0 评论 -
抽象数据结构的代码实现
抽象数据类型可以通过固有的数据类型(如整型,实型,字符型等)来表示和实现。即利用处理器中已经存在的数据类型来说明新的数据结构,用已经实现的操作来组合新的操作。例:计算两个复数的加减;#include<stdio.h> typedef struct //复数类型 { float Realpart; //实部 float Imagepart; //虚部 }Co...原创 2020-01-13 19:48:11 · 466 阅读 · 0 评论 -
数据结构基础知识的理解(基本概念和术语)
基本概念和术语数据:1.是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。2.信息的载体。3.是对客观事物符号化的表示。4.能够被计算机识别,储存和加工。5.包括数值型的数据(整数,实数等)和非数值型的数据(文字,图像,图形等)数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。有些情况下,也称为元素、记录等。数据项:是组成数据元素的...原创 2020-01-11 22:19:06 · 814 阅读 · 0 评论 -
数据结构基础知识的理解(研究内容)
计算机处理问题一般有三个步骤1.具体问题抽象问数学模型。2.设计算法。3.编写程序,调试,直到解决问题。其中的第一步,首先要分析问题,提取才做对象,然后找出操作对象之间的关系,最后用数学语言对操作对象和操作对象之间的关系进行描述。这也就是我们所说的数据结构。例题1学生学籍管理系统诸如此类的线性表格结构,计算机处理的对象是各种表,元素之间存在简单一对一的线性关系,这类问题的数学模型就是线性表...原创 2020-01-11 21:36:44 · 462 阅读 · 0 评论 -
数据结构简介
图灵奖获得者Pascal语言之父 —— Nicklaus Wirth,说过著名的一句话:程序 = 数据结构 + 算法;所以,学习数据结构这一门课,就是学习数据结构和算法。重要性1.数组结构是计算机软件相关专业的专业基础课。2.数据结构是一门核心,承上启下的课程。3.数据结构是结余数学,计算机硬件,计算机软件三者之间的一门核心课程。4.是考研的必考专业课。5.数据结构是面试的主要考核内容...原创 2020-01-11 20:43:33 · 3369 阅读 · 0 评论