PHP学习心得


栈、队列、堆、图

<ul> <li>栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 </li> </ul> <h2>栈的特点</h2> <ul> <li>先进后出(后进先出),从栈顶放入元素的操作叫入栈,取出元素叫出栈</li> <li>栈的结构就像一个集装箱或叠盘子,越先放进去的东西越晚才能拿出来</li> <li>栈常应用于,实现递归功能方面的场景,例如斐波那契数列</li> </ul> <h2>队列</h2> <ul> <li>队列与栈一样,也是一种线性表,不同的是,队列可以在一端添加元素,在另一端取出元素</li> </ul> <h2>队列的特点</h2> <ul> <li>先进先出。从一端放入元素的操作称为入队,取出元素为出队</li> <li>栈的结构就像现实中的排队,先放进去的东西先拿出来</li> <li>栈常应用于消息队列</li> </ul> <h1>堆</h1> <ul> <li>堆可以被看做一棵树的数组对象</li> </ul> <h2>堆特点</h2> <ul> <li> <p>堆中某个节点的值总是不大于或不小于其父节点的值;</p> </li> <li> <p>堆总是一棵完全二叉树。</p> </li> <li>将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。</li> <li>常见的堆有二叉堆、斐波那契堆等。</li> <li>堆有序的特点,一般用来做数组中的排序,称为堆排序</li> </ul> <h2>堆的定义</h2> <ul> <li>n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时,称之为堆。 </li> <li>(ki &lt;= k2i,ki &lt;= k2i+1)或者(ki &gt;= k2i,ki &gt;= k2i+1), (i = 1,2,3,4…n/2),满足前者的表达式的成为小顶堆,满足后者表达式的为大顶堆,这两者的结构图可以用完全二叉树排列出来</li> </ul> <h1>图</h1> <ul> <li>图是由结点的有穷集合V和边的集合E组成。</li> <li>为了与树形结构加以区别 <ul> <li>在图结构中常常将结点称为顶点,</li> <li>边是顶点的有序偶对,</li> <li>若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。</li> </ul></li> </ul> <h2>图特点</h2> <ul> <li>图是一种比较复杂的数据结构,在存储数据上有着比较复杂和高效的算法,分别有邻接矩阵 、邻接表、十字链表、邻接多重表、边集数组等存储结构</li> </ul>

页面列表

ITEM_HTML