<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[blacklord的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/blacklord</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; blacklord]]></copyright><item><title><![CDATA[2007.08.30]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1765701</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1765701</guid><author>blacklord</author><pubDate>Thu, 30 Aug 2007 17:15:00 +0800</pubDate><description><![CDATA[栈与递归的实现栈非常重要的一个应用是在程序设计语言中用来实现递归。递归是指在定义自身的同时又出现了对自身的调用。如果一个函数在其定义体内直接调用自己，则称其为直接递归函数；如果一个函数经过一些列的中间调用语句，通过其它函数间接调用自己，则称其为间接递归函数。1.递归特性问题现实中，许多问题具有固有的递归特性。1）递归函数例如，很多数学函数是递归定义的，如二阶Fibonacci数]]></description><category></category></item><item><title><![CDATA[2007.08.29学习栈的应用举例]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1764410</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1764410</guid><author>blacklord</author><pubDate>Wed, 29 Aug 2007 21:08:00 +0800</pubDate><description><![CDATA[栈的应用举例栈结构所具有的“先进后出”特性，使得栈成为程序设计中的有用工具。今后将学习几个栈应用的典型例子。1.     数值转换假设要将十进制数N转换为d进制数，一个简单的转换算法是重复下述两步，直到N等于零：                                                X=N mod d（其中mod为求余运算）   ]]></description><category></category></item><item><title><![CDATA[2007.08.28栈的表示和实现之链栈]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1762362</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1762362</guid><author>blacklord</author><pubDate>Tue, 28 Aug 2007 16:51:00 +0800</pubDate><description><![CDATA[22.链栈链栈即采用链表作为存储结构实现的栈。为便于操作，我们采用带头结点的单链表实现栈。由于栈的插入和删除操作仅限制在表头位置进行，所以链表的表头指针就作为栈顶指针，如图3.4所示。在图3.4中，top为栈顶指针，始终指向当前栈顶元素前面的头结点。若top->next=NULL，则代表栈空。采用链栈不必预先估计栈的最大容量，只要系统有可用空间，链栈就不会出现溢出。采用]]></description><category></category></item><item><title><![CDATA[2007.08.27栈的表示和实现之顺序栈]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1761249</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1761249</guid><author>blacklord</author><pubDate>Mon, 27 Aug 2007 22:20:00 +0800</pubDate><description><![CDATA[ 栈作为一种特殊的线性表，在计算机中也主要有两种基本的存储结构：顺序存储结构和链式存储结构。我们称顺序存储的栈为顺序栈，链式存储的栈为链栈。1.顺序栈顺序栈是用顺序存储结构实现的栈，即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素，同时由于栈的操作的特殊性，还必须附设一个位置指针top（栈顶指针）来动态地指示栈顶元素在顺序栈中的位置。通常以top=-1表示空栈。顺序栈的存]]></description><category></category></item><item><title><![CDATA[2007.08.26学习栈]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1759886</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1759886</guid><author>blacklord</author><pubDate>Sun, 26 Aug 2007 22:33:00 +0800</pubDate><description><![CDATA[栈栈是常用的重要数据结构，其应用也十分广泛。例如，编译器对表达式的语法分析就用到了栈。另外，函数的参数传递、函数的调用和返回也是用栈来实现的。栈是一种只在表的一端访问元素的表，其元素只能从栈顶端增加或删除。餐厅中的食物盘或堆在一起的盘子都是栈的很好的例子。栈被设计用来存放那些本身就只能从一端访问的元素。栈结构就给出了其增加和删除元素的操作。压入（push）操作在栈顶增加一个]]></description><category></category></item><item><title><![CDATA[2007.08.25一元多项式的表示及相加]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1759050</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1759050</guid><author>blacklord</author><pubDate>Sat, 25 Aug 2007 21:23:00 +0800</pubDate><description><![CDATA[一元多项式的表示及相加对于符号多项式的各种操作，实际上都可以利用线性表来处理。比较典型的是关于一元多项式的处理。在数学上，一个一元多项式Pn（x）可按升幂的形式写成：Pn（x）=p0+p1x+p2x2+p3x3+…+pnxn。它实际上可以由n+1个系数唯一确定。因此，在计算机内，可以用一个线性表P来表示：P=（p0，p1，p2，…，pn）其中每一项的指数隐含在其系数的序号里了。假设Qm（x]]></description><category></category></item><item><title><![CDATA[2007.08.24静态单链表的基本操作及顺序表和链表的比较]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1757826</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1757826</guid><author>blacklord</author><pubDate>Fri, 24 Aug 2007 17:31:00 +0800</pubDate><description><![CDATA[ 静态单链表的基本操作1.初始化所谓初始化操作，是指将这个静态单链表初始化为一个备用静态单链表。设space为静态单链表的名字，av为备用单链表的头指针，其算法如下：                                                void initial(StaticList space,int *av)         ]]></description><category></category></item><item><title><![CDATA[2007.08.23静态链表]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1756688</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1756688</guid><author>blacklord</author><pubDate>Thu, 23 Aug 2007 21:52:00 +0800</pubDate><description><![CDATA[静态链表以前学习的个中链表都是有指针实现的，链表中结点空间的分配和回收（即释放）都是有系统提供的标准函数malloc和free动态实现的，故称之为动态链表。但是有的高级语言，如BASIC、FORTRAN等，没有提供“指针”这种数据类型，此时若仍想采用链表作存储结构，就必须使用“游标（Cursor）”来模拟指针，由程序员自己编写“分配结点”和“回收结点”的过程。用游标实现链表，其方法是：定义]]></description><category></category></item><item><title><![CDATA[2007.08.22双向链表（前插操作，删除操作）]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1755007</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1755007</guid><author>blacklord</author><pubDate>Wed, 22 Aug 2007 20:37:00 +0800</pubDate><description><![CDATA[双向链表循环单链表的出现，虽然能够实现从任一结点出发沿着链能找到其前驱结点，但时间耗费是O（n）。如果希望从表中快速确定某一个结点的前驱，另一个解决方法就是在单链表的每个结点里再增加一个指向其前驱的指针域prior。这样形成的链表中就有两条方向不同的链，我们可称之为双（向）链表（Double Linked List）。双链表的结构定义如下：                 ]]></description><category></category></item><item><title><![CDATA[2007.08.21单链表的运算（查找，插入，删除）]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1753269</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1753269</guid><author>blacklord</author><pubDate>Tue, 21 Aug 2007 18:08:00 +0800</pubDate><description><![CDATA[ 2.查找1）按序号查找在单链表中，由于每个结点的存储位置都放在其前一结点的next域中，因而即使知道被访问结点的序号i，也不能像顺序表那样直接按序号i访问一维数组中的相应元素，实现随机存取，而只能从链表的头指针出发，顺链域next诸葛结点往下搜索，直至搜索到第i个结点为止。算法描述：设带头结点的单链表的长度为n，要查找表中第i个结点，则需要从单链表的头指针L出发，从头结点（L->]]></description><category></category></item><item><title><![CDATA[2007.08.20单链表上的基本运算（建立单链表）]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1751707</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1751707</guid><author>blacklord</author><pubDate>Mon, 20 Aug 2007 16:24:00 +0800</pubDate><description><![CDATA[单链表上的基本运算1.建立单链表假设线性表中结点的数据类型是字符，我们诸葛输入这些字符的结点，并以“$”作为输入结束标志符。动态建立单链表的常用方法有如下两种：1）头插法建表算法描述：从一个空表开始，重复读入数据，生成新结点，将读入数据存放到新结点的数据域中，然后将进阶点插入到当前链表的表头结点之后，直至读入结束标志为止。建表过程如图2.9所示。用头插法建立单链表的]]></description><category></category></item><item><title><![CDATA[2007.08.19线性表的链式存储]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1750754</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1750754</guid><author>blacklord</author><pubDate>Sun, 19 Aug 2007 21:44:00 +0800</pubDate><description><![CDATA[线性表的链式存储为了客服顺序表的缺点，可以采用链接方式存储线性表。通常我们将采用链式存储结构的线性表称为链表。本节将从两个角度来讨论链表：从实现角度看，链表可分为动态链表和静态链表；从链接方式的角度看，链表可分为单链表、循环链表和双链表。链接存储是最常用的存储方法之一，它不仅可以用来表示线性表，而且可以用来表示各种非线性的数据结果。单链表在顺序表中，我们是用一组地址连续的存储单元来]]></description><category></category></item><item><title><![CDATA[2007.08.16]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1746892</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1746892</guid><author>blacklord</author><pubDate>Thu, 16 Aug 2007 17:39:00 +0800</pubDate><description><![CDATA[算法       线性表的删除与插入运算类似，在顺序表上实现删除运算也必须移动结点，这样才能反映出结点间的逻辑关系的变化。若i=L->last+1，则移位语句L->elem[k-1]=L->elem[k]不执行，因为循环变量的初值大于终值，此时不需要移动元素，仅将表长度减1即可。显然，删除算法中移位语句L->elem[k-1]=L->elem[k]的执行频度也与删除位置i有关。在顺序表中插]]></description><category></category></item><item><title><![CDATA[2007.08.14学习内容]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1743232</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1743232</guid><author>blacklord</author><pubDate>Tue, 14 Aug 2007 21:00:00 +0800</pubDate><description><![CDATA[线性表顺序存储结构上的基本运算查找操作线性表有两种基本的查找运算。按序号查找GetData(L,i)：要求查找线性表L中第i个数据元素，其结果是L.elem[i-1]或L->elem[i-1]。按内容查找Locate(L,e)：要求查找线性表L中与给定值e相等的数据元素，其结果是：若在表L中找到与e相等的元素，则返回该元素在表中的序号；若找不到，则返回一个“空序号”，如-1。查]]></description><category></category></item><item><title><![CDATA[2007.08.13学习到的知识]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1741704</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1741704</guid><author>blacklord</author><pubDate>Mon, 13 Aug 2007 22:01:00 +0800</pubDate><description><![CDATA[数据定义语言（Date Definition Language，简称DDL）负责数据的模式定义与数据的物理存取构建；数据操纵语言（Date Manipulation Language，简称DML）负责数据的操纵，包括增、删、改等操作。线性表线性表（Linear list）是最简单且最常用的一种数据结构。这种结构具有下列特点：存在一个唯一的没有前驱的（头）数据元素；存在一个唯一的没有后继的（]]></description><category></category></item><item><title><![CDATA[2007.08.12-今天学习到的有关二叉树的知识]]></title><link>https://blog.youkuaiyun.com/blacklord/article/details/1739606</link><guid>https://blog.youkuaiyun.com/blacklord/article/details/1739606</guid><author>blacklord</author><pubDate>Sun, 12 Aug 2007 16:14:00 +0800</pubDate><description><![CDATA[今天学习到的有关二叉树的知识树是由节点和叶子组成的。其组织方式是从根向外层结点（被称作树的叶子）扩展。二叉树：是一种特定的树，在这类树中，每个双亲的孩子数不超过两个（图11.6）。这些“二叉树”具有统一的结构，有多种扫描算法可供使用并可提供对元素的高效访问。在二叉树中，每个节点有0个，1个或2个孩子。我们将左边的结点称作“左孩子”，右边的结点称为“右孩子”。标记左或右是我们对树形象化的]]></description><category></category></item></channel></rss>