数据结构基础知识.doc
《数据结构基础知识.doc》由会员分享,可在线阅读,更多相关《数据结构基础知识.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流数据结构基础知识【精品文档】第 10 页复习提纲第一章 数据结构概述基本概念与术语(P3)1 数据结构 是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科.2 数据 是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算 机识别的符号的集合2数据元素 是数据的基本单位3数据对象 相同性质的数据元素的集合4数据结构 三方面内容:数据的逻辑结构.数据的存储结构.数据的操作.(1)数据的逻辑结构 指数据元素之间固有的逻辑关系.(2)数据的存储结构 指数据元素及其关系在计算机内的表示 ( 3 ) 数据的操作 指
2、在数据逻辑结构上定义的操作算法,如插入,删除等.5.时间复杂度分析1、名词解释:数据结构、二元组2、根据数据元素之间关系的不同,数据的逻辑结构可以分为集合、线性结构、树形结构和图状结构四种类型。3、常见的数据存储结构一般有四种类型,它们分别是_顺序存储结构_、_链式存储结构_、_索引存储结构_和_散列存储结构_。4、以下程序段的时间复杂度为_O(N2)_。 int i,j,x;for(i=0;in:i+) n+1 for(j=0;j=0)个具有相同性质的数据元素a1,a2,a3,an组成的有穷序列/顺序表结构#define MAXSIZE 100typedef int DataType; Ty
3、pedef struct DataType itemsMAXSIZE;Int length;Sqlist,*LinkList;2. 单链表(1) 链表结点结构/链表的节点结构Typedef struct Nodeint data;struct Node *next; Lnode,*Pnode,*LinkList;(2) 结点遍历void TraverseList(LinkList t)LinkList p;while(t)p=t; t=t-nextfree(p);(3) 链表操作算法:初始化、插入、输出、删除void InitList(LinkList *h)*h=(LinkList)mall
4、oc(sizeof(LNode);if(!h) print(“初始化错误”); return;(*h)-next=NULL;void InsertList(LinkList h,int pos,datatype x)LinkList p=h,q;int i=0;while(p&inext; i+;if(!p|ipos-1)print(“插入位置出错!”);InitList(&q);q-next=NULL;q-data=x;void DeleteList(LinkList h,int pos)LinkList p=h,q;int i=0;while(p&inext; i+;if(!p|ipos-
5、1)coutnext;p-next=q-next;free(q);1、线性表中, 第一个元素没有直接前驱,最后一个元素没有直接后驱。2、在一个单链表中,若p所指结点是q所指结点的前驱结点,则删除结点q的操作语句为p-next=q-next;free(q);。3、在长度为N的顺序表中,插入一个新元素平均需要移动表中n/2个元素,删除一个元素平均需要移动(n-1)/2个元素。4、若线性表的主要操作是在最后一个元素之后插入一个元素或删除最后一个元素,则采用_带头结点的双循环链表_存储结构最节省运算时间。5、已知顺序表中每个元素占用3个存储单元,第13个元素的存储地址未336,则顺序表的首地址为_30
6、0_。6、设有一带头结点单链表L,请编写该单链表的初始化,插入、输出和删除函数。(函数名自定义)void InitList(LinkList *L)(*L)=(LinkList)malloc(sizeof(LNode);if(!L)coutnext=NULL;void InsertList(LinkList L,int pos,DataType x)LinkList p=L,q;int i=0;while(p&inext; i+;if(!p|ipos-1) coutnext=p-next;p-next=q;q-data=x;void TraverseList(LinkList L)LinkLi
7、st t;while(L) t=L; L=L-next; free(t);void TraverseList(LinkList L)LinkList t=L;while(L) t=t-next; coutdata” ”;coutendl;void DeleteList(LinkList L,int pos)LinkList p=L,q;int i=0;while(p&inext; i+;if(!p|ipos-1)coutnext;p-next=q-next;free(q):第三章 栈和队列1. 栈(1) 栈的结构与定义(2) 顺序栈操作算法:入栈、出栈、判断栈空等(3) 链栈的结构与定义2.
8、队列(1) 队列的定义1、一个栈的入栈序列为“ABCDE”,则以下不可能的出栈序列是()A. BCDAEB. EDACBC. BCADED. AEDCB2、栈的顺序表示仲,用TOP表示栈顶元素,那么栈空的条件是()A. TOP=STACKSIZEB. TOP=1C. TOP=0D. TOP=-13、允许在一端插入,在另一端删除的线性表称为_队列_。插入的一端为_队尾_,删除的一端为_队头_。4、栈的特点是_先进后出_,队列的特点是_先进先出_。5、对于栈和队列,无论他们采用顺序存储结构还是链式存储结构,进行插入和删除操作的时间复杂度都是_O(1)_。6、已知链栈Q,编写函数判断栈空,如果栈空则
9、进行入栈操作,否则出栈并输出。(要求判断栈空、出栈、入栈用函数实现)void EmptyStack(LinkStack Q)LinkStack t;char x=a; /假设链栈存储字符型数据if(Q-next)t=Pop(Q,x);coutdata;else Push(Q,x);基本概念n 数据结构的研究对象是什么?数据,数据元素(数据结构中讨论的基本单位、数据整体中相对独立的单位、数据元素的特点:相对性),数据结构,数据类型和抽象数据类型,数据对象n 数据结构是什么?定义:数据元素以及它们之间存在一种或多种特定的关系。 特点 :数据元素集合相同,而其上的关系不同,则构成的数据结构不同。n
10、逻辑结构是什么?主要有哪几类? 逻辑结构:对数据元素之间存在的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合上的若干关系表示。 n 存储结构是什么?存储结构:是数据逻辑结构在计算机中的表示和实现,故又称数据物理结构。n 什么是算法?定义:是对问题求解过程的一种描述,是为解决一个或一类问题给出的一个确定的、有限长的操作序列。 五大特性:有穷性、确定性、可行性、输入、输出线性表n 线性表的定义?线性表是由n(n0)个属性相同数据元素a1,a2an组成的一个有限序列,线性表或是空表,或可以表示为 A=(a1,a2,ai,an) 其中ai(i=1,2,n)是线性表中的一个元素。n 如何在顺序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 基础知识
限制150内