【摘要】:有序表的抽象数据类型描述如下:有序表中数据元素的逻辑关系与线性表中数据元素的逻辑关系完全相同,可以采用顺序表和链表进行存储。用C++语言描述的算法如下:例2.13已知一个单循环链表存放一组按值非递减的数据元素,设计一个插入元素x的算法,插入后链表仍然按值非递减排列。
有序表的抽象数据类型描述如下:
有序表中数据元素的逻辑关系与线性表中数据元素的逻辑关系完全相同,可以采用顺序表和链表进行存储。
采用带头结点的单链表存储有序表的类定义如下:
(1)OrderList()函数为构造函数,申请一个头结点并置指针域为NULL,用C++语言描述的算法如下:
(2)~OrderList()函数为析构函数,依次释放有序表中结点的存储空间,用C++语言描述的算法如下:
(3)OrderInsert()函数在有序表中插入数据元素,用C++语言描述的算法如下:
(4)OrderDelete()函数删除有序表中的第i个元素,用C++语言描述的算法如下:
(5)GetElem()函数获取有序表的第i个数据元素,用C++语言描述的算法如下:(www.daowen.com)
(6)EmptyOrder()函数判断有序表是否为空表,如果是空表则返回1,否则返回0,用C++语言描述的算法如下:
例2.12 已知两个带头结点的单链表分别按顺序存放集合ha和hb,设计一个算法求ha∪hb放入ha中,返回ha中的元素数量。
【解】用C++语言描述的算法如下:
例2.13 已知一个单循环链表存放一组按值非递减的数据元素,设计一个插入元素x的算法,插入后链表仍然按值非递减排列。
【解】用C++语言描述的算法如下:
例2.14 已知3个带头结点的双向链表ha、hb、hc分别存放集合A、B、C,其中结点均递增排列。设计一个算法求A∩B∩C,结果存放在链表ha中。
【解】用C++语言描述的算法如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关数据结构的文章