数据结构有什么?
常用数据结构有哪些数据元素相互之间的关系称为结构。有四类基本结构: *** 、线性结构、树形结构、图状结构;
*** 结构:除了同属于一种类型外,别无其它关系
线性结构:元素之间存在一对一关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别.例如:链表可在任意位置插入或删除元素,而队列在队尾插入元素,队头删除元素,栈只能在栈顶进行插
入,删除操作.
树形结构:元素之间存在一对多关系,常见类型有:树(有许多特例:二叉树、平衡二叉树、查找树等)
图形结构:元素之间存在多对多关系,图形结构中每个结点的前驱结点数和后续结点多个数可以任意
算法和数据结构有什么区别??
数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合鼎这种算法的数据结构。一种数据结构如果脱离了算法,那还有什么用呢?实际上也不存在一本书单纯的讲数据结构,或者单纯的讲算法。当然两者也是有一定区别的,算法更加的抽象一些,侧重于对问题的建模,而数据结构则是具体实现方面的问题了,两者是相辅相成的。
什么是数据结构,数据之间的关系有几种
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。
——《数据结构》(C语言版),严蔚敏,清华大学出版社。
数据之间的结构有线性的数据结构(计算机处理的对象之间如果存在着一种最简单的线性关系,则这类数学模型可称为线性的数据结构)和表、树和图之类的数据结构(描述非数值问题的数学模型时不能用数学方程)。
数据结构中*和&的区别是什么
应该是C++里的吧?没有在C语言版的数据结构中看见&吧?
在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针;
在调用时,*p是指指针p指向的那个变量,比如说之前有int a=5;int *p=a;那么p的值是a的地址,也就是指针p指向a,*p则等于a的值,即*p=5。
而&,则是引用,比如说有定义int a=5;再定义int b=&a;那么这里的b则引用a的值,即b=5
,而再给b赋值:b=10,a的值也会变为10。
我想楼主会问*和&的区别,应该是针对函数定义里的参数而言吧,因为这里的这两者比较相似:
举几个简单例子:
先定义有int x=0;和int *p=x;
1、若定义函数: void fun_1(int a){ a=5;} , 则调用:fun_1(x); 之后,x还等于0;因为fun_1函数只改变了形参a的值,a只是fun_1函数里的局部变量,调用fun_1(x)相当于是“a=x;a=5;”,x没变;
2、若定义函数:void fun_2(int &a){ a=5;} , 则调用:fun_2(x); 之后,x等于5;因为这里的a引用了x的值;
3、若定义函数:void fun_3(int *a){ *a=5;} , 则调用:fun_3(p); 之后,x也等于5;因为fun_3函数的参数a是一个指针,相当于a=p;*a则与*p指向同一地址,改变*a即改变*p即x
数据结构都有哪些分类呢?
根据数据元素间关系的不同特性,将数据结构常分为下列四类基本的结构:
⑴ *** 结构。该结构的数据元素间的关系是“属于同一个 *** ”。
⑵线性结构。该结构的数据元素之间存在着一对一的关系。
⑶树型结构。该结构的数据元素之间存在着一对多的关系。
⑷图形结构。该结构的数据元素之间存在着多对多的关系,也称网状结构。
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的 *** 。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
数据结构是什么?
呵呵,看你这样喜欢去想是什么的,将来肯定会知道的!但是既然问了,我就说一下我自己的见解!
其实,大家都说,数据结构+算法=程序!数据结构就是提供一个程序中数据的逻辑视图!什么逻辑视图呢?就是在你看起来你这样来组织你的数据!比如说一张地图!有很多城市,每个城市之间有很多路,每条路有距离!让你来求一下给定的两个城市的最短路!然后你就可用“无向图”来组织这张地图!就是用节点表示城市,边表示路,边的权表示路长度!接下来你的程序就可以用算法在这张图上(无向图)上来操作!可能用dijkstra算法来求两点之间的最短路!
数组是一种数据结构!虽然简单,但是她也是一种数据的存储方式,就是这样一个挨一个的存储!数组也有很多很好的性质!
说这么多呢!其实数据结构是数据的组织方式,为你的程序提供更高的效率,不管用
数组,链表(单向,双向,循环等等),堆栈(最大堆,最小堆),队列(优先级队列)树(二叉树,红黑树,AVL树,B+树等等)区间树,并查集,图等等都是对于特定的问题,来说你这样组织数据是你的程序更加高效而已!数据结构和算法,一个用来存储数据,一个用来操作数据!
什么是数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的 *** 。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
名词定义
数据结构是指相互之间存在着一种或多种关系的数据元素的 *** 和该 *** 中数据元素之间的关系组成。记为:
Data_Structure=(D,R)
其中D是数据元素的 *** ,R是该 *** 中所有元素之间的关系的有限 *** 。
其它定义
Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实 例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的 *** ”。
Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是ADT(抽象数据类型Abstract Data Type) 的物理实现。”
Robert L.Kruse在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。
数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。
研究对象
一、数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。逻辑结构包括:
1. ***
2.线性结构
3.树形结构
4.图形结构
二、数据的物理结构:指数据的逻辑结构在计算机存储空间的存放形式。
三、数据结构的运算
数据结构有几种结构类型,分别是什么
如果指的是逻辑结构,分为4种: *** 、线性、树形、图形
如果指的是物理结构(也叫做存储结构),主要也是4种:顺序、链式、索引、散列
绛旓細3. 甯歌鐨勬暟鎹粨鏋勫寘鎷暟缁勩侀摼琛ㄣ佹爤銆侀槦鍒椼佹爲鍜屽浘绛锛屾瘡绉嶇粨鏋勯兘鏈夊叾鐗瑰畾鐨勭敤閫斿拰鎿嶄綔鏂规硶銆4. 鏁扮粍鏄竴绉嶇嚎鎬ф暟鎹粨鏋勶紝瀹冩寜鐓у浐瀹氱殑椤哄簭瀛樺偍鍏冪礌锛屽彲浠ラ氳繃绱㈠紩鐩存帴璁块棶銆5. 閾捐〃鏄竴绉嶅姩鎬佺殑鏁版嵁缁撴瀯锛屽畠鐢变竴绯诲垪鑺傜偣缁勬垚锛屾瘡涓妭鐐瑰寘鍚暟鎹儴鍒嗗拰鎸囧悜涓嬩竴涓妭鐐圭殑鎸囬拡銆6. 鏍堟槸涓绉嶅悗杩涘厛鍑猴紙...
绛旓細鏁版嵁缁撴瀯鍥涚甯歌鐨勯昏緫缁撴瀯锛氶泦鍚堛佺嚎鎬х粨鏋勩佹爲褰㈢粨鏋勩佸浘褰㈢粨鏋銆. 鏁版嵁鐨勯昏緫缁撴瀯锛氭寚鍙嶆槧鏁版嵁鍏冪礌涔嬮棿鐨勯昏緫鍏崇郴鐨勬暟鎹粨鏋勶紝鍏朵腑鐨勯昏緫鍏崇郴鏄寚鏁版嵁鍏冪礌涔嬮棿鐨勫墠鍚庝欢鍏崇郴锛岃屼笌浠栦滑鍦ㄨ绠楁満涓殑瀛樺偍浣嶇疆鏃犲叧銆.閫昏緫缁撴瀯鍖呮嫭锛. 1銆侀泦鍚堬細鏁版嵁缁撴瀯涓殑鍏冪礌涔嬮棿闄や簡鈥滃悓灞炰竴涓泦鍚堚 鐨勭浉浜掑叧绯诲锛屽埆...
绛旓細1. 鏁版嵁缁撴瀯鐢变笁涓熀鏈蹇电粍鎴愶細鏁版嵁鍏冪礌銆佹暟鎹厓绱犱箣闂寸殑鍏崇郴浠ュ強鍦ㄨ繖浜涘厓绱犱笂鐨勬搷浣銆2. 鏁版嵁鍏冪礌鏄暟鎹粨鏋勪腑鐨勫熀鏈崟浣嶏紝瀹冧滑鏄俊鎭殑杞戒綋銆3. 鏁版嵁鍏冪礌涔嬮棿鐨勫叧绯绘弿杩颁簡瀹冧滑涔嬮棿鐨勭浉浜掕仈绯诲拰缁勭粐褰㈠紡銆4. 鎿嶄綔鏄寚瀵规暟鎹厓绱犲強鍏跺叧绯昏繘琛岀殑鍚勭鏂规硶鍜屽疄鐜版墜娈碉紝鍖呮嫭鎻掑叆銆佸垹闄ゃ佹煡鎵惧拰鎺掑簭绛夈5. ...
绛旓細鏁版嵁缁撴瀯鏄寚鏁版嵁鍏冪礌涔嬮棿鐨勫叧绯汇佺粍缁囨柟寮忓拰鎿嶄綔鏂规硶鐨勯泦鍚銆傚畠鎻忚堪浜嗘暟鎹厓绱犱箣闂寸殑閫昏緫鍏崇郴鍜岀墿鐞嗗瓨鍌ㄦ柟寮忥紝骞跺畾涔変簡瀵硅繖浜涙暟鎹厓绱犺繘琛屾搷浣滅殑涓缁勫熀鏈搷浣溿傛暟鎹粨鏋勬棬鍦ㄨ璁″拰瀹炵幇楂樻晥鐨勬暟鎹瓨鍌ㄥ拰璁块棶鏂规硶锛屼互渚胯В鍐冲疄闄呴棶棰樺拰浼樺寲绠楁硶鐨勬墽琛屾椂闂村拰绌洪棿澶嶆潅搴︺傚父瑙佺殑鏁版嵁缁撴瀯鍖呮嫭鏁扮粍銆侀摼琛ㄣ佹爤銆侀槦鍒銆佹爲...
绛旓細1.绾挎х粨鏋 濡傚浘1-2鎵绀虹殑鑻辨枃瀛楁瘝琛ㄦ弿杩扮殑閫昏緫缁撴瀯鏄嚎鎬х粨鏋勶紝琛ㄤ腑鐨勬瘡涓涓嫳鏂囧瓧姣嶆槸涓涓鏁版嵁鍏冪礌銆傝琛ㄤ腑a鍜宐鐩搁偦浣嶄簬b鐨勫墠闈紱瀵瑰簲鐨刡浣嶄簬a鐨勫悗闈傜被浼煎湴锛岃〃涓叾浠栨暟鎹厓绱犱箣闂翠篃鍙互寰楀埌杩欎釜缁撹銆傛墍浠ヨ锛屾瘡涓厓绱犱箣闂村瓨鍦ㄥ敮涓鐨勯『搴忓叧绯汇傚鍥1-3鎵绀虹殑闃熷垪绀烘剰鍥炬弿杩扮殑鏄彟涓绉嶇嚎鎬х粨鏋勩
绛旓細1銆侀泦鍚堢粨鏋勶細缁撴瀯涓殑鏁版嵁鍏冪礌涔嬮棿闄や簡鍚屽睘浜庝竴绉嶇被鍨嬪锛屽埆鏃犲叾瀹冨叧绯汇2銆佺嚎鎬х粨鏋勶細缁撴瀯涓殑鏁版嵁鍏冪礌涔嬮棿瀛樺湪涓瀵逛竴鐨勫叧绯汇3銆佹爲褰㈢粨鏋勶細缁撴瀯涓殑鏁版嵁鍏冪礌涔嬮棿瀛樺湪涓瀵瑰鐨勫叧绯汇4銆佸浘鐘剁粨鏋勬垨鏄綉鐘剁粨鏋勶細缁撴瀯涓殑鏁版嵁鍏冪礌涔嬮棿瀛樺湪澶氬澶氱殑鍏崇郴銆
绛旓細甯哥敤鏁版嵁缁撴瀯鏈夊摢浜 鏁版嵁鍏冪礌鐩镐簰涔嬮棿鐨勫叧绯荤О涓虹粨鏋勩傛湁鍥涚被鍩烘湰缁撴瀯锛 *** 銆佺嚎鎬х粨鏋勩佹爲褰㈢粨鏋勩佸浘鐘剁粨鏋;缁撴瀯:闄や簡鍚屽睘浜庝竴绉嶇被鍨嬪锛屽埆鏃犲叾瀹冨叧绯 绾挎х粨鏋:鍏冪礌涔嬮棿瀛樺湪涓瀵逛竴鍏崇郴甯歌绫诲瀷鏈: 鏁扮粍,閾捐〃,闃熷垪,鏍,瀹冧滑涔嬮棿鍦ㄦ搷浣滀笂鏈夋墍鍖哄埆.渚嬪:閾捐〃鍙湪浠绘剰浣嶇疆鎻掑叆鎴栧垹闄ゅ厓绱,鑰岄槦鍒楀湪闃熷熬...
绛旓細鏁版嵁缁撴瀯鏄绠楁満瀛樺偍銆佺粍缁囨暟鎹殑鏂瑰紡銆傛暟鎹粨鏋勬槸涓绉嶇粍缁囧拰瀛樺偍鏁版嵁鐨勬柟寮忥紝浠ヤ究鍙互鏈夋晥鍦拌闂拰淇敼鏁版嵁銆傛暟鎹粨鏋勬槸涓绉嶇紪鐮佹妧鏈紝瀹冧娇鐢ㄨ绠楁満涓瓨鍌ㄥ拰鎿嶄綔鏁版嵁鐨勬柟寮忋傛暟鎹粨鏋勭殑涓昏绫诲瀷鍖呮嫭鏁扮粍锛岄摼琛紝鍫嗘爤锛岄槦鍒楋紝鏍戯紝鍥剧瓑銆傝繖浜涗笉鍚岀被鍨嬬殑缁撴瀯浣撳湪璁$畻鏈哄唴閮ㄦ暟鎹粍缁囧拰澶勭悊鏂归潰璧风潃鑷冲叧閲嶈鐨勪綔鐢...
绛旓細鏁版嵁缁撴瀯闄や簡鏁版嵁鐨勮繍绠楀拰鏁版嵁閫昏緫缁撴瀯涔嬪锛屼篃鍖呮嫭鏁版嵁鐨勫瓨鍌ㄧ粨鏋勩傛暟鎹粨鏋勬槸璁$畻鏈哄瓨鍌ㄣ佺粍缁囨暟鎹殑鏂瑰紡锛屽彲浠ョ粰璁$畻鏈哄甫鏉ユ洿楂樼殑瀛樺偍涓庤繍琛屾晥鐜囥傛暟鎹粨鏋勬槸浠涔堟剰鎬 鏁版嵁缁撴瀯鎸囩殑鏄鏁版嵁鍏冪礌鐨勯泦鍚堬紝鑰屼笖杩樻槸甯︽湁缁撴瀯鐗规х殑鏁版嵁闆嗗悎銆傛暟鎹粨鏋勭爺绌剁殑鏄暟鎹殑閫昏緫缁撴瀯鍜屾暟鎹殑鐗╃悊缁撴瀯锛屽苟瀵硅繖绉嶇粨鏋勫畾涔夌浉閫傚簲...
绛旓細鏁版嵁缁撴瀯鐨勫畾涔夊拰鍒嗙被鏄鍏堣瀛︿範鐨勫唴瀹广傛暟鎹粨鏋勬槸璁$畻鏈哄瓨鍌ㄥ拰杩愮畻鏁版嵁鐨勫熀纭锛屼富瑕佺爺绌舵暟鎹殑閫昏緫缁撴瀯鍜岀墿鐞嗙粨鏋勩傞昏緫缁撴瀯涓昏鍖呮嫭绾挎х粨鏋勩佹爲褰㈢粨鏋勩佸浘褰㈢粨鏋勭瓑锛岃岀墿鐞嗙粨鏋勫叧娉ㄧ殑鏄暟鎹湪璁$畻鏈哄唴瀛樹腑鐨勫瓨鍌ㄦ柟寮忋傜嚎鎬х粨鏋勬槸鏁版嵁缁撴瀯涓渶鍩虹鐨勪竴绫伙紝鍖呮嫭绾挎ц〃銆侀槦鍒椼佹爤绛夈傜嚎鎬х粨鏋勭殑鍏冪礌涔嬮棿瀛樺湪涓...