转载自《数据结构》(第三版)- 刘大有、杨博等。

用算法描述语言 ADL 书写算法的格式及规定如下:

算法<算法名>(变量i1,···,变量in.变量j,···,变量jn)
// <算法的概括说明>或者/*<算法的概括说明>*/
<步骤名>.[<本步骤的概括说明>]
	<操作1> //<操作1的解释>或者/*<操作1的解释>*/
		或者(操作1的解释)或者<无解释>
	···
	<操作J1> //<操作J1的解释>或者/*<操作J1的解释>*/
		或者(操作J1的解释)或者<无解释>
···
<步骤名>.[<本步骤的概括说明>]
	<操作1> //<操作1的解释>或者/*<操作1的解释>*/
		或者(操作1的解释)或者<无解释>
	···
	<操作Jk> //<操作Jk的解释>或者/*<操作Jk的解释>*/
		或者(操作Jk的解释)或者<无解释>|

下面是对上述书写格式给出具体解释:

  1. 关于 “<算法名>(变量 i1,・・・, 变量 in. 变量 j,・・・, 变量 jn)” 的解释

      <算法名>是由字母和数字组成的有限字符串,并且字符串中的第一个符号必须是字母。
      在变量表中,变量ik为输入变量.1≤k≤m,m≥0,当m=O时.表示无输入变量;变量jk为输出变量,1≤k≤n,n≥1。
    
  2. 关于 <算法的概括说明> 的解释

      在算法的变量表后对整个算法进行概括说明,说明中应包含算法的主要思想,对算法功能和其变量的解释等。
      说明较短时使用//,较长时使用/**/
    
  3. 关于算法步骤的解释

      算法的每一步骤都要有步骤名,步骤名由<算法名或算法名缩写><数字>组成。
      步骤名后面的方括号内是对该步骤所执行操作的高度概括。
      方括号后是本步骤的一系列操作,每个操作由ADL语句给出,若某操作难于理解则需在其后对其做出解释。
    
  4. 关于符号 “|” 的解释

      每个算法都需要用符号“|”表示其被书写完毕,也就是说,符号“|”作为对应算法被书写完毕的结束符。
      注意算法不一定在符号“|”处运行结束。
    
  5. 可使用的算术运算符

      +、-、*、x、/、DIV、MOD、⌊⌋(取地板运算,如⌊x⌋的值是小于等于x的最大整数)、
      ⌈⌉(取天棚运算,如⌈x⌉的值是大于等于x的最小整数).....
    
  6. 可用的关系、逻辑运算符、逻辑常量、集合运算符

    关系运算符(=、≠、<、>、≥、≤ ...)
    逻辑运算符(AND、OR、NOT)
    逻排常量(true、false)
    集合运算符(∩、∪、-(差)...)
    
  7. 结束符

     通常每条语句(或每个操作)都用".”作为结束符。
     但在能判断语句结束的位置可略去“.”。
    
  8. 关于注释语句

    注释语句有以下3种形式:
      1.较短的注释语句(注释内容不超过一行)用符号“//”开头,后面是具体注释的内容。
      2.较长的注释语句用符号“/*”开头,中间是具体注释的内容,用符号“*/”结尾。
      3.注释语句用左小括号“("开头,中间是具体的注释或说明内容,用右小括号“)”结尾。
    
  9. 关于赋值语句

     形如a←b,其中a是变量,b是表达式或变量;
     a↔b表示交换变量a和变量b的内容;
     a←b←c,表示既将c的值赋给变量a,又将其值赋给变量b。
    
  10. 关于条件语句

    1.IF(或如果,或若)<逻辑表达式> THEN(或“,则”)(语句...语句m).
    2.IF(或如果,或若)<逻辑表达式>
    	THEN(或“,则")(语句...语句m).
    	ELSE(或“;否则”)(语句...语句n).
    其中m,n≥1。
    3.CASE DO
    		(<逻辑表达式 1>:(语句1...语句n).
    		       ···
    		<逻辑表达式m>:(语句...语句nm )).
    其中,n≥1,m≥1,1≤i≤m。
    
  11. 关于循环语句

    	1.WHILE<逻辑表达式>DO(语句1. ..语句n).
    其中,n≥1。
    	2.FOR<变量>=<算术表达式1> T0<算术表达式2>STEP<算术表达式3>
    				DO(语句1. ... 语句n).
    其中,n≥1。若<算术表达式3>=1,则“STEP<算术表达式3>"可略去。
    	3.FOR V<变量>∈<集合> DO (语句...语句n).路
    其中,n≥1。
    
  12. 关于转移语句

    GOTO <步骤名>.
    
  13. 关于 EXIT 语句

      可用在通常的结束条件满足之前,用来结束WHILE或FOR循环的执行。
      EXIT语句使得程序转移到紧接在包含EXIT的(最内层的)WHILE或者FOR循环后面的第一个语句。
    
  14. 关于圆括号

    当且仅当圆括号中只有1条语句时,圆括号可以省略。
    
  15. 关于输入、输出语句

    输人语句为
    	READ(x)
    表示读取输人值赋给变量x。
    输出语句为
    	PRINT(<表达式>)
    或
    	PRINT<字符串常量>