存储过程里的递归 实现方法
一个二叉树的递归,找出左边最下面的一个点
id 自动编号
pid 父ID
id_path 节点路径
flg 位置,0左边,1右边
ALTER PROCEDURE [dbo].[get_class]
@class int,
@return int output
AS
SELECT @return=isnull(( select top 1 id from class where pid=@class and flg=0 ),-2)
if @return>-1
begin
exec get_class @return,@return output--这里为什么要用@return,你要最后得到这个值,必须把它传进去
end
else
begin
SELECT @return=@class
end
GO
其实只需一个查询语句就能找出最下面的ID
节点路径包函1,并且父节点位置都是左边,取出最大一个
select top 1 * from class a where id_path like '%1,%' and flg=0 and (select flg from class where id=a.pid)=0 order by id desc
相关推荐
-
存储过程里的递归 实现方法
一个二叉树的递归,找出左边最下面的一个点 id 自动编号 pid 父ID id_path 节点路径 flg 位置,0左边,1右边 ALTER PROCEDURE [dbo].[get_class] 复制代码 代码如下: @class int, @return int output AS SELECT @return=isnull(( select top 1 id from class where pid=@class and flg=0 ),-2) if @retu
-
Java开发深入分析讲解二叉树的递归和非递归遍历方法
目录 前言 1.递归遍历 2.非迭代遍历 3.二叉树的统一迭代法 前言 二叉树的遍历方法分为前序遍历,中序遍历,后续遍历,层序遍历. 1.递归遍历 对于递归,就不得不说递归三要素:以前序遍历为例 递归入参参数和返回值 因为要打印出前序遍历节点的数值,所以参数里需要传入List在放节点的数值,除了这一点就不需要在处理什么数据了也不需要有返回值,所以递归函数返回类型就是void,代码如下: public void preorder(TreeNode root, List<Integer> resu
-
Python多层嵌套list的递归处理方法(推荐)
问题:用Python处理一个多层嵌套list ['and', 'B', ['not', 'A'],[1,2,1,[2,1],[1,1,[2,2,1]]], ['not', 'A', 'A'],['or', 'A', 'B' ,'A'] , 'B'] 需求1)如何展开成一层? 需求2)如何删除重复的元素? 包括重复的list, 要考虑子list的重复元素删除后造成的子list重复 #!/usr/bin/env python # -*- coding: utf-8 -*- def unilist(l
-
Python实现从脚本里运行scrapy的方法
本文实例讲述了Python实现从脚本里运行scrapy的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: #!/usr/bin/python import os os.environ.setdefault('SCRAPY_SETTINGS_MODULE', 'project.settings') #Must be at the top before other imports from scrapy import log, signals, project from scrapy.x
-
python二分查找算法的递归实现方法
本文实例讲述了python二分查找算法的递归实现方法.分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 last = len(alist)-1 found = False while first<=last and not found: midpoint = (first + last)//2 if alist[midpoint] == item: found = True else: if ite
-
去除html代码里面的script正则方法
去除html代码里面的script正则方法 /** * 去除html代码里面的脚本字符(<script ...>...</script>和<script ... /> * @author ob * */ public class Regex { /** * @param args */ public static void main(String[] args) { //注意,这里有大小写 String s = "<script type='text/j
-
JavaScript通过join函数连接数组里所有元素的方法
本文实例讲述了JavaScript通过join函数连接数组里所有元素的方法.分享给大家供大家参考.具体实现方法如下: <script type="text/javascript"> var days = ["Sunday","Monday","Tuesday","Wednesday", "Thursday","Friday","Saturday&
-
php用ini_get获取php.ini里变量值的方法
本文实例讲述了php用ini_get获取php.ini里变量值的方法.分享给大家供大家参考.具体分析如下: 要得到php.ini里的变量值,当然,你可以用phpinfo();来得到所有php配置信息,但如果要想得到某个变量值的话,你又要怎样获取呢? php里提供一个获取php.ini里的变量值的函数:ini_get() ini_get()的用法非常简单,下面通过实例说明它是如何使用的. 语法: string ini_get ( string varname ) 返回值如果为布尔型则为0或1 实例
-
Python实现在线程里运行scrapy的方法
本文实例讲述了Python实现在线程里运行scrapy的方法.分享给大家供大家参考.具体如下: 如果你希望在一个写好的程序里调用scrapy,就可以通过下面的代码,让scrapy运行在一个线程里. """ Code to run Scrapy crawler in a thread - works on Scrapy 0.8 """ import threading, Queue from twisted.internet import reac
-
python清除字符串里非数字字符的方法
本文实例讲述了python清除字符串里非数字字符的方法.分享给大家供大家参考.具体如下: import re s = "how19 a*re 254y**ou?" # Using regular expressions print re.sub("\D", "", s) 希望本文所述对大家的Python程序设计有所帮助.
随机推荐
- ASP.NET笔记之 行命令处理与分页详解
- C++单例模式的实例详解
- 微信公众平台开发之认证"成为开发者".Net代码解析
- asp.net中url地址传送中文参数时的两种解决方案
- php处理复杂xml数据示例
- Android RecyclerView 数据绑定实例代码
- PHP使用自定义方法实现数组合并示例
- 使用jQuery重置(reset)表单的方法
- IIS连接数实验(Web开发必读)
- 用shell脚本实现自动切换内网和外网实现高可用
- 详解Javascript中prototype属性(推荐)
- jQuery Attributes(属性)的使用(二、类篇)
- javascript实现网页字符定位的方法
- Cocos2d-x入门教程(详细的实例和讲解)
- 原生js编写设为首页兼容ie、火狐和谷歌
- python之matplotlib学习绘制动态更新图实例代码
- 使用vue-router设置每个页面的title方法
- Python 图像处理: 生成二维高斯分布蒙版的实例
- 使用Python实现租车计费系统的两种方法
- Java如何处理延迟任务过程解析