链表的构造 - KLMM Key Laboratory of …

ID:8469031

大小:68.50 KB

页数:14页

时间:2018-03-28

链表的构造 - KLMM Key Laboratory of …_第1页
链表的构造 - KLMM Key Laboratory of …_第2页
链表的构造 - KLMM Key Laboratory of …_第3页
链表的构造 - KLMM Key Laboratory of …_第4页
链表的构造 - KLMM Key Laboratory of …_第5页
资源描述:

《链表的构造 - KLMM Key Laboratory of …》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、链表编程说明书版权所有“数学机械化与自动推理平台”软件组2003年5月目录1、链表的基本操作1.01、链表的构造1.02、链表的复制1.03、赋值运算符1.04、链表的显示1.05、链表的长度1.06、访问链表的结点1.07、链表的插入1.08、隶属关系判断1.09、并集,交集和差集1.10、链表的比较1.11、替代和求逆1.12、删除链表的结点2、常用的宏函数3、编程时的一些注意事项3.1、关于链表操作的两种实现方式3.2、关于链表的遍历方法****************************

2、***********************有关文件:有关链表的程序代码主要位于lists.h和lists.cpp两个文件中。有关类名:TList(链表类),TListNode(链表结点类)。数据结构:链表类的数据结构如下:TListNode*head,*tail;链表结点指针,分别用来指向链表的头结点和尾结点。intTotal;整型变量,用来表示链表中的元素个数。链表结点类的数据结构如下:TAtom*data;数据指针,用来指向结点的数据。unsignedlong*RefCount;整型指针,用

3、来表示结点数据的引用数。TListNode*next;链表结点指针,用来指向链表中的下一个结点。1、链表的基本操作1.01、链表的构造TList();构造空表TList(TAtom*a1,TAtom*a2=0,TAtom*a3=0,TAtom*a4=0,TAtom*a5=0,TAtom*a6=0,TAtom*a7=0);构造1到7个结点的链表调用方法:TListl1(a1);该链表包含一个数据为a1的结点Tlistl2(a1,a2);该链表包含两个数据分别为a1,a2的结点。。。。。。Tlistl7

4、(a1,a2,a3,a4,a5,a6,a7);该链表包含七个数据分别为a1,a2,…,a7的结点1.02、链表的复制virtualTList*Clone();virtualTAtom*Copy();TAtom*eval();链表的复制,即复制链表中的每一个结点,而结点的复制是指构造一个新的结点,但新结点的数据与原结点的数据共享,只把引用计数增加11.03、赋值运算符TList&operator=(TList&r);链表的赋值操作,与链表的复制相似,赋值运算符两边的链表将共享数据。调用方法:TList

5、l1,l2;l1=l2;1.04、链表的显示virtualvoiddisplay(outtype&out=wout)const;若链表的结点为a1,a2,…,an,则它将输出为以下形式:[a1,a2,…,an]1.05、链表的长度(结点的个数)intlength();返回链表中的结点个数示例:l:=[1,2,3,4,5,6,7,8];l->length()=8l:=[];l->length()=01.06、访问链表的结点TListNode*first()const;返回指向链表头结点的指针TList

6、Node*last()const;返回指向链表尾结点的指针virtualTAtom*Part(intn);返回链表的第n(n是int类型)个结点的数据的指针(该数据不被复制)n从1开始计数示例:l1:=[10,20,30,40];l1->Part(1)=10l2:=[a,b,c,[e,f]];l2->Part(4)=[e,f]virtualTAtom*Part(TBigIntn);返回链表的第n(n是TBigInt类型)个结点的数据的指针(该数据不被复制)n从1开始计数virtualTAtom*Pa

7、rt(TNumbern);返回链表的第n(n是TNumber类型)个结点的数据的指针(该数据不被复制)n从1开始计数virtualTAtom*HEAD()const;返回链表头结点的数据的指针(该数据被复制)virtualTAtom*TAIL()const;返回链表尾结点的数据的指针(该数据被复制)virtualTList*Rest();原表不变构造新表返回,它是把原表的第一个结点删除之后的链表。示例:l1:=[1,2,3,4];l1->Rest()=[2,3,4]l2:=[a];l2->Rest(

8、)=[]TAtom*pop();修改原表l返回l的第一个结点的数据的指针(该数据不被复制),并把l的头指针直接指向l的第二个结点,第一个结点不删除。1.07、链表的插入virtualvoidappend(TAtom*data);修改原表不论数据data是否在原表中,都先把数据data构造成结点,然后把这个结点直接插入原表的表尾,。不去掉重复结点。data不复制。示例:l:=[1,2,3,4];l->append(3);链表l被修改为[1,2,3,4,3]virtual

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
正文描述:

《链表的构造 - KLMM Key Laboratory of …》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、链表编程说明书版权所有“数学机械化与自动推理平台”软件组2003年5月目录1、链表的基本操作1.01、链表的构造1.02、链表的复制1.03、赋值运算符1.04、链表的显示1.05、链表的长度1.06、访问链表的结点1.07、链表的插入1.08、隶属关系判断1.09、并集,交集和差集1.10、链表的比较1.11、替代和求逆1.12、删除链表的结点2、常用的宏函数3、编程时的一些注意事项3.1、关于链表操作的两种实现方式3.2、关于链表的遍历方法****************************

2、***********************有关文件:有关链表的程序代码主要位于lists.h和lists.cpp两个文件中。有关类名:TList(链表类),TListNode(链表结点类)。数据结构:链表类的数据结构如下:TListNode*head,*tail;链表结点指针,分别用来指向链表的头结点和尾结点。intTotal;整型变量,用来表示链表中的元素个数。链表结点类的数据结构如下:TAtom*data;数据指针,用来指向结点的数据。unsignedlong*RefCount;整型指针,用

3、来表示结点数据的引用数。TListNode*next;链表结点指针,用来指向链表中的下一个结点。1、链表的基本操作1.01、链表的构造TList();构造空表TList(TAtom*a1,TAtom*a2=0,TAtom*a3=0,TAtom*a4=0,TAtom*a5=0,TAtom*a6=0,TAtom*a7=0);构造1到7个结点的链表调用方法:TListl1(a1);该链表包含一个数据为a1的结点Tlistl2(a1,a2);该链表包含两个数据分别为a1,a2的结点。。。。。。Tlistl7

4、(a1,a2,a3,a4,a5,a6,a7);该链表包含七个数据分别为a1,a2,…,a7的结点1.02、链表的复制virtualTList*Clone();virtualTAtom*Copy();TAtom*eval();链表的复制,即复制链表中的每一个结点,而结点的复制是指构造一个新的结点,但新结点的数据与原结点的数据共享,只把引用计数增加11.03、赋值运算符TList&operator=(TList&r);链表的赋值操作,与链表的复制相似,赋值运算符两边的链表将共享数据。调用方法:TList

5、l1,l2;l1=l2;1.04、链表的显示virtualvoiddisplay(outtype&out=wout)const;若链表的结点为a1,a2,…,an,则它将输出为以下形式:[a1,a2,…,an]1.05、链表的长度(结点的个数)intlength();返回链表中的结点个数示例:l:=[1,2,3,4,5,6,7,8];l->length()=8l:=[];l->length()=01.06、访问链表的结点TListNode*first()const;返回指向链表头结点的指针TList

6、Node*last()const;返回指向链表尾结点的指针virtualTAtom*Part(intn);返回链表的第n(n是int类型)个结点的数据的指针(该数据不被复制)n从1开始计数示例:l1:=[10,20,30,40];l1->Part(1)=10l2:=[a,b,c,[e,f]];l2->Part(4)=[e,f]virtualTAtom*Part(TBigIntn);返回链表的第n(n是TBigInt类型)个结点的数据的指针(该数据不被复制)n从1开始计数virtualTAtom*Pa

7、rt(TNumbern);返回链表的第n(n是TNumber类型)个结点的数据的指针(该数据不被复制)n从1开始计数virtualTAtom*HEAD()const;返回链表头结点的数据的指针(该数据被复制)virtualTAtom*TAIL()const;返回链表尾结点的数据的指针(该数据被复制)virtualTList*Rest();原表不变构造新表返回,它是把原表的第一个结点删除之后的链表。示例:l1:=[1,2,3,4];l1->Rest()=[2,3,4]l2:=[a];l2->Rest(

8、)=[]TAtom*pop();修改原表l返回l的第一个结点的数据的指针(该数据不被复制),并把l的头指针直接指向l的第二个结点,第一个结点不删除。1.07、链表的插入virtualvoidappend(TAtom*data);修改原表不论数据data是否在原表中,都先把数据data构造成结点,然后把这个结点直接插入原表的表尾,。不去掉重复结点。data不复制。示例:l:=[1,2,3,4];l->append(3);链表l被修改为[1,2,3,4,3]virtual

显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭