链表和矩阵.DOC

链表和矩阵

第三章 链表和矩阵 链表和矩阵是MMP的两个基本数据类型,本章将分别就这两个主题介绍相关的基本运算指令。 链表的运算 append 调用:append (list, atom) 参数:list 是一个表 atom是一个元素 说明:若atom不在list中,则将atom加到list的最后,形成新表返回, 否则,返回原表。 示例: append ([1,2,3,4],5); [1,2,3,4,5] append ([1,2,3,4],4); [1,2,3,4 ] append ([a,b,c,d],[e,f]); [a,b,c,d,[e,f]] insert 调用:insert(list, atom, pos) 参数:list是一个表   atom是一个元素    pos是一个正整数 说明:将元素atom插入到表list的第pos个元素之前,形成新表返回。 若表list的长度为n,则1= pos = n+1。 示例: insert([1,2,3,4],a,1); [a,1,2,3,4] insert([a,b,c,d],[c,d],2); [a,[c,d],b,c,d] insert([1,2,3,4],a,5); [1,2,3,4,a] merge 调用:merge(l1,l2) 参数:l1 是一个表    l2 是一个表 说明:链表的合并,即把链表l2的结点直接插入链表l1的表尾,形成新表返回。 示例: merge([1,2,3],[3,4,5]); [1,2,3,3,4,5] first 调用:first(list) 参数:list 是一个表 说明:返回表list中的第一个元素 示例: first([10,20,30,40]); 10 last 调用:last(list) 参数:list是一个表 说明:返回表list中的最后一个元素 示例: last([10,20,30,40]); 40 rest 调用:rest(list) 参数:list 是一个表 说明:返回将表list中的第一个元素去掉后形成的表 示例: rest([1,2,3,4]); [2,3,4] rest([a]); [] part 调用:part(list, pos) 参数:list 是一个表 pos是一个正整数 说明:返回表list中的第pos个元素, pos从1开始计数。 示例: part([10,20,30,40],3); 30 part([a,b,c,[e,f]],4); [e,f] find 调用:find(atom, list) 参数:atom 是一个元素 list是一个表 说明:检查元素atom是否在表list中。如果atom在list中,返回它在list中第一次出现的位置(索引值) ;否则返回0。 示例: find(a,[1,2,a,b,c,a]); 3 find([a,b],[1,2,[a,b],3,[a,b]]); 3 find(a,[1,2,3,4]); 0 replace 调用:replace (list, atom, pos) 参数:list是一个表   atom是一个元素    pos是一个正整数 说明:将表list的第pos个元素替换为元素atom,形成新表返回。 示例: replace([1,2,3,4],a,1); [a,2,3,4] replace([a,b,c,d],[c,d],2); [a,[c,d],c,d] equal 调用:equal (list1, list2) 参数:list1是一个表   list2是一个表 说明:判断表list1和表list2是否相等, 相等则返回1,不相等则返回0。 示例: equal([1,2,3,4],[1,2,3,4]); 1 equal([a,b,c,d],[c,d,a,b]); 0 union 调用: union(list1,list2) 参数: list1是一个表   list2是一个表 说明: 返回表list1和表list2的并集 示例: union([1,2,3,4],[2,3,6,7]); [1,2,3,4,6,7] intersect 调用: intersect(list1,list2) 参数: list1是一个表   list2是一个表 说明: 返回表list1和表list2的交集 示例: intersect([1,2,3,4],[2,3,6,7]); [2,3] minus 调用: minus(list1,list2) 参数: list1是一个表   list2是一个表 说明: 返回表list1和表list2的差集 示例: minus([1,2,3,4],[2,3

文档评论(0)

1亿VIP精品文档

相关文档