使插入的无序输入,直接变为有序输出。
有序单链表 代码思想
主要是在插入时先确定一个进行头插,再根据while对后面输入的字符进行插入,若小则插入在确定字母的前面,否则插入后面。
void InsertHead(Linklist L, datatype e)
{
if(L == NULL)
return;
Linklist q = L;
Linklist p = CreadNode();
p->data = e;
while(q->next != NULL && p->data > q->next->data)
{
q = q->next;
}
p->next = q->next;
q->next = p;
L->len++;
}
在此代码基础上在写一个字符逆序:思想写在注释了
//字符逆序
void LinklistRev(Linklist L)
{
if(L->len == 0)
return;
Linklist p = L->next;//使用p保存第一个节点
L->next = NULL; //孤立头结点
while(p)
{
Linklist t = p;//设置t保存p节点
p = p->next;//p进行类似++操作,一个一个向后遍历
//将遍历的值一个一个传给t
t->next = L->next;//t进行头插,头插输出是逆序输出
L->next = t;
}
}
输出结果: