链表算法设计(1)设循环单链表中结点的类型定义若下: typedef struct LNode{ int data; s
链表算法设计
(1)设循环单链表中结点的类型定义若下:
typedef struct LNode{
int data;
struct LNode *next;
}LNode;
假设有一个不带头结点的循环单链表,其长度大于1,R为它的尾指针,指向循环单链表的最后一个结点。编写算法在链表中删除R结点的直接前驱结点(删除后只剩一个结点的情况要加以考虑)
要求采用尾插法先创建一个循环单链表,然后输出该链表的各结点的数据域值,接下来编写算法删除R结点的前驱结点,最后输出删除结点后的链表的各结点的数据域值。
(2)设单链表中结点的类型定义若下:
typedef struct LNode{
char data;
struct LNode *next;
}LNode;
已知一个带有头结点的单链表中的数据元素包含3类字符,即字母字符、数字字符和其他字符,编写算法构造3个带头结点的循环单链表,使每个循环单链表中只包含同一类的字符,且利用原表中的结点空间作为这3个链表的结点空间,头结点可另辟空间。
要求先创建一个带头结点的单链表,然后输出该链表的各结点的数据域值,接下来编写算法将单链表L拆分成三个单链表,最后输出这三个单链表中各结点的数据域值。