1.有序单链表
随机输入n个字符【无序的】,输出升序的结果
例如:输入dahkew===>输出:adehkw
文件位置:cd li/DataStruct/day4–Linklist/defination
void SortLink(Linklist l,datatype e)
{
if(l==NULL)
return;
Linklist p = (Linklist)malloc(sizeof(Node));
if(p==NULL)
return;
p->data = e;
//链表为空
if(l->len==0){
p->next = l->next;
l->next = p;
l->len++;
}
//链表不空
else{
Linklist q = l;
while(q->next&&q->next->data<e){
q = q->next;
}
p->next = q->next;
q->next = p;
l->len++;
}
}
2.单向链表,实现’b’- -'h’的字符逆置- - - 手动输入
联想:单向链表递归反向打印==>注意此处不要使用共用体,所有结点的数据域格式一致
文件位置:cd li/DataStruct/day4–Linklist/defination
//l断开,将其他结点依次头插,长度不变
void LinklistRev2(Linklist l)
{
Linklist t = l->next;
Linklist p = t;
l->next = NULL;
while(t){
t = t->next;
p->next = l->next;
l->next = p;
p = t;
}
}
//递归反向打印
void PrintRev(Linklist l)
{
if(l->next)
PrintRev(l->next);
printf("%c\t",l->data);
}
栈–队列–思维导图