仅PAT
支架整数,布尔值和
整数数组为了有效验证。
然而,高级数据结构(例如堆栈、队列、哈希表等
on)对于某些型号是必需的。为了支持任意数据结构,PAT
提供一个接口,通过继承
抽象类
表达式值.
这个
下面是一个简单的示例,演示如何创建哈希表
在C#中。
使用系统。收藏品; 使用 拍。常见。课程。表达。表达式类;
//命名空间必须为PAT。类名和方法名可以 武断 名称空间PAT。图书馆{ 公众阶级 哈希表:ExpressionValue { 公共哈希表 表格;
///默认 不带任何参数的构造函数必须是 已实现 公众散列表() { table=新哈希表(); }
公众 哈希表(HashTable newTable) { table=新表; }
public void Add(int 键,int值) { if(!table.ContainsKey(key)) { 表。添加(键, 值); } }
公共bool ContainsKey(int 键) { 返回 表。包含密钥(key); }
公共int GetValue(int键) { 返回(int)表[key]; }
///返回 散列的字符串表示 表。 ///此方法必须 被覆盖 公共覆盖 一串ToString(目标字符串)() { 字符串returnString= “”; foreach(表中的DictionaryEntry条目) { returnString+=条目。按键+“=”+输入。价值+ “,”; }
return returnString; }
///返回深度 哈希表的克隆 /// 此方法必须 被覆写 公共覆盖 表达式值获取克隆() { return new HashTable(new 哈希表(表)); }
///返回 哈希的紧凑字符串表示 表。 ///此方法必须 被覆盖 ///智能 该方法的实现可以减少状态空间和加速 验证 公众 覆盖字符串获取ID() { string return字符串= “”; foreach(表中的DictionaryEntry条目) { returnString+=条目。键+“=”+输入。价值+ “,”; }
return return字符串; } } }
|
请注意
创建自己的数据结构时遵循以下要求
物体:
- 这个
命名空间必须是“PAT.Lib”,否则将无法识别。没有
类名和方法的限制
名称。
- 导入PAT表达式名称
空间使用“使用
拍打。常见。课程。表达。表达式类;“.
- 仅限
公共方法可用于PAT模型
- 这个
参数必须是“bool”、“int”、“int[]”(int数组)或对象类型
(对象类型允许用户将用户定义的数据类型传递为
参数).
- 这个
参数的数量可以是0或多个。
- 这个
返回类型必须是“void”、“bool”、“int”、“int[]”(int
数组)或用户定义的数据类型.
- 这个
方法名区分大小写。
- 放置
PAT安装目录的“Lib”文件夹中编译的dll
易于使用的链接#导入
“DLL_Name”;
如果您的
方法需要处理异常情况,可以抛出PAT运行时
异常,如以下示例所示。
public static int StackPeek(int[]数组) { if(数组长度> 0) 返回 数组[array.Length–1];
//抛出PAT运行时 例外 抛出新的 拍打。常见。课程。表达。表达式类。RuntimeException(“访问 空的 堆栈!”); }
|
收件人
导入模型中的库,用户可以使用以下命令
语法:
#进口“PAT.Lib.Hashtable”;//在下导入库
PAT安装路径的Lib文件夹
#进口
“C:程序文件IntelHashtable.dll”;//使用绝对值导入库
路径
收件人
声明模型中用户定义的类型,请使用以下命令
语法:
无功功率,无功功率<HashTable>表;//在此处使用类名
作为变量的类型。
收件人
调用模型中的公共方法,请使用
以下语法:
- 表。增加(10,2);
- 如果(表.ContainsKey(10))…
版权所有©2007-2009国立大学计算机学院新加坡