﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-More than C++-随笔分类-数据结构</title><link>http://www.cppblog.com/Lee/category/8745.html</link><description>Beyond  C++</description><language>zh-cn</language><lastBuildDate>Tue, 18 Nov 2008 11:27:58 GMT</lastBuildDate><pubDate>Tue, 18 Nov 2008 11:27:58 GMT</pubDate><ttl>60</ttl><item><title>数据结构  学习笔记（3）线性表</title><link>http://www.cppblog.com/Lee/archive/2008/10/16/64135.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Thu, 16 Oct 2008 05:31:00 GMT</pubDate><guid>http://www.cppblog.com/Lee/archive/2008/10/16/64135.html</guid><wfw:comment>http://www.cppblog.com/Lee/comments/64135.html</wfw:comment><comments>http://www.cppblog.com/Lee/archive/2008/10/16/64135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee/comments/commentRss/64135.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee/services/trackbacks/64135.html</trackback:ping><description><![CDATA[线性表及其基本运算<br />一。线性表（linear_list）<br />线性表是n个数据元素的有限序列<br />记为：L = ( a1,a2,...,an  )<br /><br />数据元素之间的关系是：<br />a(i-1)领先于ai, ai领先于a(i+1)<br />称a(i-1)是ai的直接前驱元素；a(i+1)是ai的直接后继元素 <br />除a1外，每个元素有且仅有一个直接前驱元素，<br />除an外，每个元素有且仅有一个直接后继元素，<br /> <br />当n = 0 时，称为空表。<br /><br />线性表是最常用且最简单的一种数据结构<br />它的形式化定义为：linear_list = ( D ,R )<br />其中，D = {ai  | ai 属于 D0, i = 1,2,...,n,    n&gt; 0}<br /><br />R = {  N },N ={  &lt;a(i - 1) ,ai  &gt; } | a(i - 1),ai属于D0，i = 2,3,...,n}<br />D0为某个数据对象，N是一个序偶的集合，<br />它表示线性表中数据元素之间的相邻关系<br /><br /><br />二。基本运算 <br />INITIATE( L )     初始化操作         设定一个空的线性表 L<br /><br />LENGTH( L )     求长度函数           函数值为线性表L中数据元素的个数<br /><br />GET（L , i  ）     取元素函数         1 &lt;= i &lt;=LENGTH( L )时，返回L中的第i个数据元素，<br />                                                         否则为空元素NULL, i称为该数据元素在L中的  位序<br /><br />PRIOR（L , elm）  求前驱函数    elm为L中的一个数据元素，若它的位序大于1，<br />                                                         则函数值为elm前驱，否则为NULL<br />NEXT（L ，elm）  求后继函数     若elm的位序小于表长，则函数值为elm的后继，否则为NULL<br /><br />LOCATE( L , x )     定位函数         给定值x，若x不在表中，则返回0，否则，<br />                                                            返回x在表中第一次出现时的位序<br /><br />INSERTE ( L , i , b)        前插操作            在第i个元素之前插入新元素b，<br />            i取值范围为：  1 &lt;= i &lt;=(n+1); i = ( n + 1 )表示在表尾插入，n为表长<br /><br />DELETE(L ,i )   删除操作    删除线性表L中的第i 个元素，  1&lt;= i&lt;= n<br /><br />EMPTY ( L , i )     判空表函数      若L为空表，则返回布尔值"true"，<br />                                                         否则返回"false"<br /><br />CLEAR (L)       表置空操作          将L置为空表<br /><br /><br /><br /><img src ="http://www.cppblog.com/Lee/aggbug/64135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee/" target="_blank">David Lee</a> 2008-10-16 13:31 <a href="http://www.cppblog.com/Lee/archive/2008/10/16/64135.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据结构 学习笔记（2）</title><link>http://www.cppblog.com/Lee/archive/2008/10/11/63733.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Sat, 11 Oct 2008 05:37:00 GMT</pubDate><guid>http://www.cppblog.com/Lee/archive/2008/10/11/63733.html</guid><wfw:comment>http://www.cppblog.com/Lee/comments/63733.html</wfw:comment><comments>http://www.cppblog.com/Lee/archive/2008/10/11/63733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee/comments/commentRss/63733.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee/services/trackbacks/63733.html</trackback:ping><description><![CDATA[
		<p>算法好坏的三个指标<br />1.运行所话费的时间（时间特性）<br />2.所占用存储空间的大小（空间特性）<br />3.其他（可读性、易调性、健壮性等）<br /></p>
		<p>算法描述和算法分析<br /><br />语句频度（Frequency   Count）<br />语句可能重复执行的最大次数<br /><br />时间复杂度（Time  Complexity）<br />设算法中所有语句的语句频度为 t ( n )<br />f ( n )是当 n 趋向无穷大时与 t ( n ) 为同阶无穷大<br />则算法的时间复杂度 T ( n ) = O ( f ( n ) )<br />其中： n 为算法计算量或称为规模 ( size );<br />              f( n )是运算时间随 n 增大时的增长率<br />            O( f ( n ) )是算法时间特性的量度</p>
<img src ="http://www.cppblog.com/Lee/aggbug/63733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee/" target="_blank">David Lee</a> 2008-10-11 13:37 <a href="http://www.cppblog.com/Lee/archive/2008/10/11/63733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据结构  学习笔记（1）（基本概念）</title><link>http://www.cppblog.com/Lee/archive/2008/10/10/63676.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Fri, 10 Oct 2008 09:54:00 GMT</pubDate><guid>http://www.cppblog.com/Lee/archive/2008/10/10/63676.html</guid><wfw:comment>http://www.cppblog.com/Lee/comments/63676.html</wfw:comment><comments>http://www.cppblog.com/Lee/archive/2008/10/10/63676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee/comments/commentRss/63676.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee/services/trackbacks/63676.html</trackback:ping><description><![CDATA[
		<strong>数据结构研究主要内容：</strong>
		<br />1.数据的各种逻辑结构和物理结构，以及它们之间的相应关系<br />2.对每种结构定义相适应的各种算法<br />3.设计相应的算法<br />4.分析算法的效率<br /><br />常见数据结构：数组、栈、队列、表、串、树、图、文件等<br /><br /><strong>基本术语：<br /></strong>数据（Data）：所有能被计算机处理的符号的总称<br /><br />数据元素(Data  Element)：数据集合中的一个个体。  eg.  D = {d1 ,d2, d3, ...di},di属于D，称di为数据元素<br /><br />数据项(Data Item)：数据元素常常还可分为若干个数据项(若干个数据特性)，数据项是数据具有意义的最小单位<br /><br />数据对象(Data Object)：具有相同特性的数据元素的集合<br /><br />数据结构（Data Structure）：带有结构的数据元素的集合（数据及其对应关系的集合，2种集合）<br /><br />逻辑结构（Logical Structure）：数据元素之间的关系<br /><br />物理结构（Physical Structure）：数据结构在机内的表示<br /><br /><strong>算法描述和算法分析<br /></strong>一.算法(Algorithm)<br />1.算法概念：算法是一个有限的指令集。遵循指令流可以完成特定的功能<br /><br />2.算法基本特性：<br /><font color="#ff0000">有穷性：算法经有限步骤后结束；<br />确定性：下一步必须是明确的；<br />可行性：每一步是可执行的；<br /></font><br />3，算法和程序的区别<br /><font color="#0000ff">算法</font> 是解决问题的一种方法或一个过程，考虑如何将输入转换成输出。<br /><br /><font color="#0000ff">程序</font>  是用某种程序设计语言对算法的具体实现<br /><br />主要区别：有穷性、正确性和描述方法<br />程序可以是无穷的，例如OS，算法是有穷的<br />程序可以是错误的，算法必须是正确的<br />程序是用程序设计语言描述，在机器上可以执行<br />算法还可以用框图、自然语言等方式描述<br /><br /><br /><img src ="http://www.cppblog.com/Lee/aggbug/63676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee/" target="_blank">David Lee</a> 2008-10-10 17:54 <a href="http://www.cppblog.com/Lee/archive/2008/10/10/63676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>