文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>一些数据结构算法,不断补充

一些数据结构算法,不断补充

时间:2006-07-17  来源:jingzhi

/**
* 遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。
* @param string $dir
* @return array
*/
function my_scandir($dir)
{
   $files = array();
   if ( $handle = opendir($dir) ) {
       while ( ($file = readdir($handle)) !== false ) {
           if ( $file != ".." && $file != "." ) {
               if ( is_dir($dir . "/" . $file) ) {
                   $files[$file] = rec_scandir($dir . "/" . $file);
               }else {
                   $files[] = $file;
               }
           }
       }
       closedir($handle);
       return $files;
   }
}

/**
* php实现栈操作,php中提供了以数组为存储结构的栈操作函数array_push,array_pop。如果我们只是要将一个元素压入栈,那么用下面的函数更高效
* 在php中不用像C语言中那样再申请空间,还要严格防止越界。
* 需要注意的是,由于php的数组存储元素类型可以不同,所以我们可以把一个字符串
* 和一个数字甚至对象、资源类型变量放入同一个数组中,但我们自己一定要清楚我们在做什么。
*
* @param mix $param  注意这里只接受的类型为字符串或数字或字符,而不能是数组或source类型
* @param array $stack
* @return bool
*/
function stack_push($param,& $stack=array())
{
     if( is_numeric($param) or is_string($param) )
     {
         $stack[] = $param;
         return true;
     }else{
         return false;
     }
}

/**
*  出栈操作
*  @param array $stack
*  @return mix
*/
function stack_pop($stack)
{
    return $pop_param = array_pop($stack);
}

/**
* 对于队列,也可以用数组结构实现,php中也提供了相应的操作函数。
* array_shift,array_merge,array_search
*
*/


array_push
(PHP 4, PHP 5)
array_push --  将一个或多个单元压入数组的末尾(入栈)
说明int array_push ( array &array, mixed var [, mixed ...] )
array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。返回数组新的单元总数。
array_pop
(PHP 4, PHP 5)
array_pop -- 将数组最后一个单元弹出(出栈)
说明mixed array_pop ( array &array )
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。
注: 使用本函数后会重置(
reset()
)数组指针。
之后我们来讨论用php实现树的数据结构的操作——二叉树的表示,先序、中序、后序遍历。
再之后是搜索二叉树
再之后我们讨论图的操作


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载