仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 594|回复: 7
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP完成双向链表、栈

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
只要实现最基本的功能就可以了就是可以添加留言然后可以显示留言,然后加入管理功能双向链表复制代码<?php//双向链表classHero{public$pre=null;//前指针public$no;//排名public$name;//名字public$next=null;//后指针/***机关函数,声名链表头*/publicfunction__construct($no=,$name=){$this->no=$no;$this->name=$name;}/***拔出*/staticpublicfunctionaddHero($head,$hero){$cur=$head;$isExist=false;//判别今朝这个链表是不是为空if($cur->next==null){$cur->next=$hero;$hero->pre=$cur;}else{//假如不是空节点,则布置名来增加//找到增加的地位while($cur->next!=null){if($cur->next->no>$hero->no){//假如年夜于了排名,跳出break;}elseif($cur->next->no==$hero->no){//假如即是排名,则代表有这个元素了$isExist=true;echo"<br>不克不及增加不异的编号";}$cur=$cur->next;}if(!$isExist){//假如元素不存在,实行拔出操纵if($cur->next!=null){$hero->next=$cur->next;}$hero->pre=$cur;if($cur->next!=null){$hero->next->pre=$hero;}$cur->next=$hero;}}}//遍历staticpublicfunctionshowHero($head){$cur=$head;while($cur->next!=null){echo"<br>编号:".$cur->next->no."名字:".$cur->next->name;$cur=$cur->next;}}staticpublicfunctiondelHero($head,$herono){$cur=$head;$isFind=false;while($cur!=null){if($cur->no==$herono){$isFind=true;break;}//持续找$cur=$cur->next;}if($isFind){if($cur->next!=null){$cur->next_pre=$cur->pre;}$cur->pre->next=$cur->next;}else{echo"<br>没有找到方针";}}}$head=newHero();$hero1=newHero(1,1111);$hero3=newHero(3,3333);$hero2=newHero(2,2222);Hero::addHero($head,$hero1);Hero::addHero($head,$hero3);Hero::addHero($head,$hero2);Hero::showHero($head);Hero::delHero($head,2);Hero::showHero($head);?>复制代码双向链表的拔出操纵表示图:if($cur->next!=null)$hero->next=$cur->next;$hero->pre=$cur;if($cur->next!=null)$hero->next->pre=$hero;$cur->next=$hero;QQ截0140706152241删除操纵表示图:if($cur->next!=null)$cur->next->pre=$cur->pre;$cur->pre->next=$cur->next;QQ截0140706152857栈复制代码<?phpclassmyStack{private$top=-1;private$maxSize=5;private$stack=array();publicfunctionpush($val){if($this->top==$this->maxSize){echo"<br>已满了";}$this->top++;$this->stack[$this->top]=$val;}publicfunctionshowStack(){if($this->top==-1){echo"<br>栈为空!";return;}for($i=$this->top;$i>-1;$i--){echo"<br>stack[".$i."]=".$this->stack[$i];}}publicfunctionpop(){if($this->top==-1){echo"<br>栈为空!";return;}$val=$this->stack[$this->top];$this->top--;echo"<br>弹出".$val;}}$mystack=newmyStack;$mystack->push(111);$mystack->push(222);$mystack->showStack();$mystack->pop();$mystack->pop();?>复制代码栈(Stack):是限定在表的一端举行拔出和删除操纵的线性表。又称为落后先出LIFO(LastInFirstOut)或先辈后出FILO(FirstInLastOut)线性表。栈在盘算机的完成有多种体例:硬仓库:使用CPU中的某些存放器组或相似的硬件或利用内存的特别地区来完成。这类仓库容量无限,但速率很快;软仓库:这类仓库次要在内存中完成。仓库容量能够到达很年夜。在完成体例上,又有静态体例和静态体例两种栈顶(Top):同意举行拔出、删除操纵的一端,又称为表尾。用栈顶指针(top)来唆使栈顶元素。栈底(Bottom):是流动端,又称为表头。空栈:当表中没有元素时称为空栈。栈的链式存储布局称为链栈,是运算受限的单链表。其拔出和删除操纵只能在表头地位长进行。因而,链栈没有需要像单链表那样附加头结点,栈顶指针top就是链表的头指针。固然,php中的数组API内里带的有push和pop函数。完成一个功能齐全的动态站点
小女巫 该用户已被删除
沙发
发表于 2015-1-18 22:23:48 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
若相依 该用户已被删除
板凳
发表于 2015-1-25 11:31:52 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
莫相离 该用户已被删除
地板
发表于 2015-2-2 21:59:54 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
谁可相欹 该用户已被删除
5#
发表于 2015-2-8 08:49:14 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
爱飞 该用户已被删除
6#
发表于 2015-2-25 06:49:26 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
深爱那片海 该用户已被删除
7#
发表于 2015-3-15 10:37:35 | 只看该作者
爱上php,他也会爱上你。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-22 00:15:06 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 10:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表