[求助]刚学数据结构还是不太明白
1. 假设有两个按元素值非递减有序排列的线性表A和表B,均以单链表作存储结构,试编写算法,将A表和B表归并成一个按元素值非递减有序排列的线性表C,并要求利用原表(即A表和B表)的结点空间存放表C。
2.已知由单链表表示的线性表中,含有三类字符的数据元素(如:字母字符、数字字符和其它字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含同一类的字符,且利用原表中的结点空间作为这三个表的结点空间。头结点可另辟空间。
*3.设有一个双链表,每个结点中除有priou、data和next三个域外, 还有一个访问频度域freq,在链表被起用之前,其值均初始化为零。每当在链表进行一次LOCATE(L,X) 运算时,令元素值为X的结点中freq域的值增1,并使此链表中结点保持按访问频度递减的顺序排列,以便使频繁访问的结点总是靠近表头。试编写实现符合上述要求的LOCATE的运算的算法。
*4.解约瑟夫(Josephu)问题: 设有n个人围圆桌而坐,从某起始位置i开报数, 报到m的人便出列。接下一人(第m+1个)又从1开始报数,再报到m的人又出列, 依此重复下去,直至所有的人均出列,则得到一个新的序列。例如,m=8,n=4,i=1时的序列为:4,8,5,2,1,3,7,6。试以循环链表作为存储结构,写出求解算法。