数据结构与算法常用词汇Word文档格式.docx
《数据结构与算法常用词汇Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构与算法常用词汇Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
正确性correctness
可读性readability
鲁棒性robustness
频度frequencycount
计算理论computabilitytheory
计算复杂性理论computationalcomplexitytheory
1.*抽象数据类型abstractdatatype(ADT):
AbstractDataType(ADT)definesthedomainandstructureofthedata,alongwithacollectionofoperationsthataccessthedata.Itcreatesauser-defineddatatypewhoseoperationsspecifyhowaclientmaymanipulatethedata.抽象数据类型定义了数据取值范围和表现结构,以及对数据的操作。
ADT给出了一种用户定义的数据类型,其运算符指明了用户如何操作数据。
2.*时间复杂度timecomplexity:
Timecomplexityanalysislooksattheinternalstructureofanalgorithmbyanalyzingitsdesign,includingthenumberofcomparisontests,thenumberofiterations,thenumberofassignmentstatementsusedbythealgorithm.
时间复杂度分析旨在检查算法的内部结构,所使用的方法是分析算法的设计,包括算法中使用的比较、赋值等各种语句的次数。
Timecomplexityanalysisisindependentofanyparticularcomputersystem.Thecriteriameasurethecomputationalcomplexityofthealgorithmrelativeton,thenumberofdataitemsinthecollection.
时间复杂度分析是独立于特定的计算机系统,它用算法处理的数据元素的个数n来衡量算法的计算复杂度。
3.*空间复杂度spacecomplexity:
Spacecomplexityisameasureoftherelativeamountofinternalmemoryusedbyanalgorithm.Itcandictatewhatkindofcomputeriscapableofrunningthealgorithmandtheoverallsystemefficiencyofthealgorithm.
空间复杂度用来测定算法需要的内存空间大小,它可以用来说明算法适合在何种计算机上运行及算法的总体系统性能。
第二节线性表
Section2LinearLists
直接前驱immediatepredecessor
直接后继immediatesuccessor
随机存取randomaccess
顺序存取sequentialaccess
结点node
尾标志tailmark
*线性链表linearlinkedlists
链表linkedlist
单链表singlylinkedlists
双链表doublylinkedlists
头指针headpointer
尾指针rearpointer
存储密度storagedensity
*循环链表circularlinkedlists
指示器cursor
静态链表implementinglinkedlistsusingarray
间接寻址indirectaddress
1.*线性表linearlists:
Alinearlististhecollectionofobjectsthataresequentiallyaccessed.Ithasauniquefirstandlastelementandeachinterioritemhasauniquesuccessor.Alinearlistisageneraldescriptionforstructuresthatincludearrays,stacks,queues,andlinkedlists.
线性表是顺序访问的对象集合。
它只有唯一一个头元素和一个尾元素,中间各项都有唯一一个后继。
线性表是数组、堆栈、队列和链表等结构的统称。
2.*顺序表sequentiallist:
Sequentiallistisakindofstoragestructureoflinearliststhatstoreselementsinasequentialorder.Thestructureholdsanarbitrarynumberofitems.Thesizeofthelistismodifiedbyaddingordeletinganitemfromthelist,andtheitemsinthelistarereferencedbytheirpositions.
顺序表是线性表的一种存储结构,这种线性表的结构存放着任意个数的元素。
表的大小通过增加或删除表中的元素来改变,表中元素通过其位置来访问。
Inalinearlist,thefirstelementoccursattheheadorfrontofthelist,andthelastelementoccursattherearofthelist.Eachelementexceptthefirstandthelasthasauniquepredecessorandauniquesuccessor.
在线性表中,第一个元素位于表头,最后一个元素是表尾,除第一个元素和最后一个元素外,每一个元素都有唯一的前趋和唯一的后继。
3.头节点headnodeorheader:
Anemptylinkedlistcontainsanode,whichhasanuninitializeddatafield.Thisnodeiscalledtheheaderandinitiallypointstoitself.Theroleoftheheaderistopointthefirst‘real’nodeinthelistandhencetheheaderisoftenreferredtoasasentinelnode.
一个空链表中包含一个结点,它有一个未经初始化的数据域。
该结点叫头结点,初始化时它指向自己。
头结点的作用是指向表中第一个“真正的”结点,因此它常被称为“哨位”结点。
4.有序表orderedlist:
Anorderedlistisaspecialtypeoflistthatmaintainstheelementsinascendingorder.
有序表是一种特殊的表,其元素按升序排列。
5.双向链表doublylinkedlists或bi-directionallinkedlists:
6.Incaseswhereweneedtoaccessnodesineitherdirection,adoublylinkedlistishelpful.Anodeinadoublylinkedlistcontainstwopointersandthedatafield.
当我们需要双向访问节点时,双向链表是很有用的。
双向链表中的节点含有两个指针域,一个数据域。
第三节栈和队列
Section3StacksandQueues
顺序栈sequentialstack
链栈linkedstack
栈顶top
栈底bottom
*后进先出LastInFirstOut(LIFO)
上溢overflow/
表达式求值expressionevaluation
后缀表达式postfixexpression
汉诺塔算法TowerofHanoialgorithm
递归recursion
队头(元素)front(element)
队尾(元素)rear(element)
*先进先出FirstInFirstOut(FIFO)
双向队列double-endedqueue
*循环队列circularqueue
链队列linkedqueue
共享share
离散事件模拟discreteeventsimulation
1.*栈stack:
Astackisalistofitemsthatareaccessibleatonlyoneendofthelist.Itemsareaddedordeletedfromthelistonlyatthetopofthestack.AstackissaidtohaveLIFO(last-in/first-out)ordering.
栈是一种只能在表的一端访问元素的表,其元素只能从栈顶端增加或删除。
出入栈的顺序为后进先出(LIFO,last-in/first-out)。
Astackstructurefeaturesoperationsthataddanddeleteitems.APushoperationaddsanitemtothetopofthestack.Theoperationofremovinganelementfromthestackissaidtopopthestack.
栈结构就出增加和删除元素的操作。
压入(push)操作往栈顶增加一个元素。
从栈顶删除一个元素的操作称为弹出(pop)。
2.递归过程recursiveprocedure:
Analgorithmisdefinedrecursivelyifitsdefinitionconsistsof:
(1)Oneormorestoppingconditionswhichcanbeevaluatedforcertainparameters.
(2)Arecursivestepinwhichacurrentvalueinthealgorithmcanbedefinedintermsofapreviousvalue.Eventually,therecursivestepmustleadtostoppingconditions.
如果一种算法的定义组成如下,则它就是递归的。
(1)对应于某些参数可以求值的一个或多个终止条件。
(2)一个递归步骤,它根据先前某次值求当前值。
递归步骤最终必须导致终止条件。
3.*队列queue:
Aqueueisadatastructurethatstoreselementsinalistandpermitsdataaccessonlyatthetwoendsofthelist.Anelementisinsertedattherearofthelistandisdeletedfromthefrontofthelist.
队列是以表形式存放元素,但只允许在表的两端访问元素的数据结构,其元素只能在表尾插入(入队),在表头删除(出队)。
ElementsareremovedfromthequeueinthesameorderinwhichtheyarestoredandhenceaqueueprovidesFIFO(first-in/first-out)orFCFS(first-come/first-served)ordering.
队列删除元素的顺序和元素到达队列的顺序相同,可称为先进先出(FIFO,first-in/first-out)或先到先服务(FCFS,first-come/first-served)。
4.优先级队列priorityqueue:
AqueueisadatastructurethatprovidesaFIFOorderingofelements.Thequeueremovesthe“oldest”itemfromthelist.Applicationsoftenrequireamodifiedversionofqueuestorageinwhichtheitemofhighestpriorityisremovedfromthelist.Thisstructureiscalledapriorityqueue.
一个队列是以FIFO顺序访问元素的数据结构,它从中删除“最老”的元素。
实际应用中常需要另外一种队列,它删除优先级最高的元素,这种结构我们称为优先级队列。
第四节串和数组
Section4StringsandArrays
*子串substring
主串primarystring
空串nullstring
空格串blankstring
文本编辑textediting
模式pattern
*三元组表listof3-tuples
三元组顺序表sequentiallistof3-tuples
十字链表orthogonallist
*特殊矩阵specialmatrix
*稀疏矩阵sparsematrix
1.*串string:
Astringisaspecialformofanarraythatholdscharacterdatathatidentifynames,words,sentences,andsoforth.Ittreatsthecharactersasasingleentityandprovidesoperationstoaccesscharactersequenceswithinthestring.
串是一种特殊形式的数组,它存放着组成名字、单词、句子等的字符数据。
它将字符视为单元实体,并提供得到字符在串中位置的操作。
2.*模式匹配patternmatching:
Acommonpatternmatchingprobleminvolvessearchingforoneormoreoccurrencesofastringinatext.
一个最普通的模式匹配问题就是在文本文件中查找串。
3.*数组array:
Anarrayisanexampleofadatacollection.Itdefinesastructureddatatypethatholdsahomogeneouslistofitems.Aone-dimensionalarrayisafinite,sequentiallistofelementsofthesamedatatype(homogeneousarray).Atwo-dimensionalarray,oftencalledamatrix,isastructureddatatypethatiscreatedbynestingone-dimensionalarrays.Itemsareaccessedbyrowandcolumnsindices.
数组是一个数据集的例子。
它定义了一个可以存放多个相同类型元素的结构化数据类型。
一维数组是一个具有有限个相同数据类型元素的顺序表(同构数组)。
二维数组通常成为矩阵,是一种由多个一维数组合成的结构化数据类型。
其元素通过行和列下标存取。
Theelementtypeofanarraycanincludenotonlythebuilt-indatatypesuchasintorcharbutalsouser-definedclasstype.
数组元素的类型不但可以是原始类型如整型或字符型,也可以是用户定义的类类型。
4.一维数组的存储storageofone-dimensionalarray:
AC++one-dimensionalarrayAislogicallystoredasaconsecutivesequenceofitemsinmemory.Eachitemisofthesamedatatype.
C++的一维数组A逻辑上在内存中连续存放,其每个元素的类型相同。
5.二维数组的存储storageoftwo-dimensionalarrays:
Atwo-dimensionalarraycanbeinitializedbyassigningtheitemsarowatatime.
二维数组可以通过一次赋值一行元素来初始化。
第五节树和二叉树
Section5TreesandBinaryTrees
根root
(结点的)度degree
叶子结点leafnode
孩子结点childrennode
分支结点branchnode
双亲parents
兄弟sibling/
祖先ancestors/
子孙descendant
*深度depth
*层、层次level
有序树orderedtree
无序树unorderedtree
*森林forest
(表达式的)中缀表示infixnotation
(表达式的)后缀表示postfixnotation
同构isomorphic
遍历traverse
双亲表示法parentexpression
孩子表示法childexpression
双亲孩子表示法parent-childexpression
孩子兄弟表示法children-brotherexpression
*先序遍历preordertraversal
*后序遍历postordertraversal
*完全二叉树completebinarytree
*满二叉树fullbinarytree
二叉链表binarylinkedlist
三叉链表tridentlinkedlist
判定树decisiontree
线索thread
*线索二叉树threadedbinarytrees
线索链表threadedlists
等价关系equivalencerelation
等价类equivalenceclass
*哈夫曼树Huffmantree
*最优树optimaltree
前缀编码prefixcode
哈夫曼编码Huffmancode
*路径path
路径长度pathlength
带权路径长度weightedpathlength
(表达式的)前缀表示prefixnotation
*树的遍历treetraversal
树的计数enumerationoftree
1.*树tree:
Atreeisahierarchicalstructurethatconsistsofnodesemanatingfromaroot.Atreestructureischaracterizedasasetofnodesthatoriginatesfromauniquestartingnodecalledtheroot.Eachnodeinatreeistherootofasubtree,whichisdefinedbythenodeandalldescendantsofthenode.
树是一种由根发散的节点所组成的层次结构由若干个节点和叶子组成的。
它的特点是它是由唯一的起始点“根(root)”开始的“节点”集合。
树中的每个节点都是一棵“子树”的根,这个子树是由节点和节点的后代定义的。
2.*二叉树binarytree:
Abinarytreeisarestrictedclassoftreeinwhicheachparenthasnomorethantwochildren.Abinarytreeisarecursivestructure.Eachnodeistherootofitsownsubtreeandhaschildren,whicharerootsofthetreecalledtheleftandrightsubtreesofthenode,respectively.
叉树是一种特定的树,在这类树中,每个双亲的孩子数不超过两个