喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
 25  2/3  <  1  2  3  > 
     
标题: [原创] PHP数组模拟常用数据结构  
 
玉面修罗
注册会员
Rank: 2


UID 78111
精华 1
积分 128
帖子 1577
金钱 118 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2006-8-11
状态 离线
自己顶下,栈部分快要完成了。



PHPthink.com
待业中...
2007-1-30 03:20 AM#11
查看资料  发短消息  顶部
 
太阳雨
高级会员
Rank: 4
船长



UID 29985
精华 0
积分 724
帖子 873
金钱 724 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2004-7-10
来自 广州
状态 离线
[推荐阅读] 为什么的我的imageCreate()函数老是不能用呢?


QUOTE:
原帖由 玉面修罗 于 2007-1-30 03:20 AM 发表
自己顶下,栈部分快要完成了。
支持一个,php的数组本身就可以当成栈了(array_pop,array_push)




PHPec开发框架(www.phpec.com)
2007-1-30 09:36 AM#12
查看资料  Blog  发短消息  QQ  顶部
 
玉面修罗
注册会员
Rank: 2


UID 78111
精华 1
积分 128
帖子 1577
金钱 118 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2006-8-11
状态 离线
[推荐阅读] 请教过年新玩法


QUOTE:
原帖由 太阳雨 于 2007-1-30 09:36 AM 发表


支持一个,php的数组本身就可以当成栈了(array_pop,array_push)
确实,不过我要把它们封装。。但是数组的的任何元素都是暴露在外的,栈可不是这样的。




PHPthink.com
待业中...
2007-1-30 12:33 PM#13
查看资料  发短消息  顶部
 
dreamblaze
高级会员
Rank: 4
administrator


UID 78956
精华 0
积分 989
帖子 1004
金钱 863 喜悦币
威望 0
人脉 126
阅读权限 50
注册 2006-8-24
来自 福州
状态 离线
[推荐阅读] 同时三个MM对我有意思
顶~~我数据结构以前也没好好学,后悔死了,现在正在看,顺便能看看你的,不错不错!



天下流氓数吾乡
吾乡流氓数吾庄
吾庄流氓数吾弟
吾教吾弟耍流氓   
2007-1-30 05:49 PM#14
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
玉面修罗
注册会员
Rank: 2


UID 78111
精华 1
积分 128
帖子 1577
金钱 118 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2006-8-11
状态 离线
[推荐阅读] 为什么报错使用or die
使用方法:

<?php
$myStack
=new stack();//新建一个空栈
$myStack->push(5);//插入5
$myStack->push(89);//插入89
$myStack->push(54);//插入54
echo $myStack->getStackLength();//3
echo '<br>';
echo 
$myStack->getTopValue();//54
echo '<br>';
$myStack->pop();
$myStack->pop();
echo 
$myStack->getTopValue();//5
$myStack->clearStack();//销毁栈
?>
栈的应用:
1:进制转换
十进制数N和其他d进制的转换是计算机实现计算的基本问题,其解决方法很多,其中一个简单
算法基于下列原理:
N=(N div d)*d+N mod d    (其中:div为整除运算,mod为求余运算)
例如:1348(10)=2504(8),运算过程如下:
  N           N div 8        N mod 8
1348           168             4
168             21             0
  21             2              5
  2              0              2
下面我们完成如下程序:
对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。
  由于上述计算过程是从低位到高位顺序产生八进制数的各个数位,而打印输出,
一般来说应从高位到低位进行,恰好和计算过程相反。因此若将计算过程中得到
的八进制数的各位顺序进栈,则按出栈序列打印输出的既为与输入对应的八进制数。

<?php
class DataConver 
{
   public static function 
converse($i)
   {
     if (
$i<=0||!is_int($i)) 
     {
      echo 
'请输入一个正十进制整数!';
      return 
false;
     }
     
$stack=new Stack();
     while ((int)
$i
     {
      
$stack->push($i%8);
      
$i=$i/8;
     }
     while (!
$stack->isEmpty()) 
     {
      
$var.=$stack->pop();
     }
     return 
$var;
   }
}
echo 
DataConver::converse(10);//12
echo DataConver::converse(1246);//2336
?>




PHPthink.com
待业中...
2007-1-31 12:18 AM#15
查看资料  发短消息  顶部
 
玉面修罗
注册会员
Rank: 2


UID 78111
精华 1
积分 128
帖子 1577
金钱 118 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2006-8-11
状态 离线
[推荐阅读] 我的WEB下面每个页面都加入了不明东东?
下面我们来实现一个迷宫:

<?php
$newMaze
=new Maze(10,10);//新建一个迷宫
$newMaze->initStart(1,0);//(1,0)为入口
$newMaze->initEnd(8,9);//(8,9)为出口
$wayArray=array(=>array(1,1),=>array(1,2),=>array(2,1),
                
=>array(2,2), =>array(3,1), =>array(4,1),
                
=>array(5,1), =>array(6,1), =>array(7,1),
                
=>array(3,2), 10=>array(5,2),11=>array(8,2),
                
12=>array(3,3),13=>array(5,3),14=>array(6,3),
                
15=>array(8,3),16=>array(1,4),17=>array(2,4),
                
18=>array(3,4),19=>array(6,4),20=>array(8,4),
                
21=>array(1,5),22=>array(2,5),23=>array(4,5),
                
24=>array(5,5),25=>array(6,5),26=>array(7,5),
                
27=>array(8,5),28=>array(1,6),29=>array(2,6),
                
30=>array(4,6),31=>array(5,6),32=>array(8,6),
                
33=>array(3,7),34=>array(4,7),35=>array(5,7),
                
36=>array(6,7),37=>array(8,7),38=>array(1,8),
                
39=>array(2,8),40=>array(3,8),41=>array(4,8),
                
42=>array(5,8),43=>array(6,8),44=>array(7,8),
                
45=>array(8,8));
for(
$i=0;$i<count($wayArray);$i++)
$newMaze->setPassWay($wayArray[$i]);//设置所有通路
$newMaze->printMaze();//在浏览器输出迷宫
?>


 附件: 您所在的用户组无法下载或查看附件



PHPthink.com
待业中...
2007-1-31 12:21 AM#16
查看资料  发短消息  顶部
 
玉面修罗
注册会员
Rank: 2


UID 78111
精华 1
积分 128
帖子 1577
金钱 118 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2006-8-11
状态 离线
[推荐阅读] 北京 招聘
希望大家能通过这个了解:
1:栈这种数据结构,提高PHP程序员的综合素质。
2:面向对象设计的优点,其实PHP的数组也可以当做栈来使用,而且PHP还提供了array_push()和array_pop()把数组当作栈来处理,但是我们为什么还要用一个类来实现呢,这样不是更麻烦了吗?
的确,从眼前来看,这个确实是麻烦了很多,但是这样麻烦的设计是值得的,因为数组毕竟还是数组,它不是栈,数组的元素全部都暴露在外,任何人都可以修改它,如果栈的非表头元素能被修改,那就不能叫栈了,所以我们完全有必要封装一个数组,然后只提供几个栈结构所应该有的接口方法。那样一个“数组”就真的变成了一个栈了。

最后,写代码一定要有耐心,在最后一个探索者的类中,写探索主方法花了2个小时,调试花了半天的时间,对于这种做穷举的代码,真的很难查错,我用ZDE的单步执行功能在那里单步跟踪了两个多小时,F11被我按了几千下,最后终于发现错误了,开始差点就放弃了。看来还是要有耐心,恒心,另外方法也很重要,看来有必要熟悉一些测试工具。




PHPthink.com
待业中...
2007-1-31 12:25 AM#17
查看资料  发短消息  顶部
 
玉面修罗
注册会员
Rank: 2


UID 78111
精华 1
积分 128
帖子 1577
金钱 118 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2006-8-11
状态 离线
[推荐阅读] dedecms模板显示三级菜单
累死了,有什么问题请跟帖,或则直接PM我。

例子越来越难,有耐心的仔细看看。顺便帮我找下错误。




PHPthink.com
待业中...
2007-1-31 12:25 AM#18
查看资料  发短消息  顶部
 
Macaulay
高级会员
Rank: 4


UID 83520
精华 0
积分 690
帖子 438
金钱 426 喜悦币
威望 0
人脉 264
阅读权限 50
注册 2006-11-20
来自 浙
状态 离线
[推荐阅读] 怎么样删除数组里面的值?
en,学习
2007-1-31 09:00 AM#19
查看资料  发短消息  QQ  ICQ 状态  顶部
 
菜鸟也要有理想
中级会员
Rank: 3Rank: 3
一般会员



UID 65342
精华 0
积分 439
帖子 426
金钱 439 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2005-8-1
状态 离线
[推荐阅读] PHP做批删除如何做啊?
对哦对哦ZDE的确要狂按F11
不知道怎么跳过循环。。
2007-1-31 09:48 AM#20
查看资料  发短消息  顶部
 25  2/3  <  1  2  3  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.030413 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP