#include<iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode;
//创建单链表(带头结点)
void create(LNode *&p)
{
int data;
cin >> data;
if(data==0)
{
p->next=NULL;
}
else
{
p->next=new LNode();
p->next->data=data;
create(p->next);
}
}
void print(LNode *ln)
{
if(ln->next!=NULL)
{
cout << ln->next->data << endl;
print(ln->next);
}
}
void sort(LNode *ln)
{
LNode *p,*q;
p=ln;
LNode *stack[100];int top=-1;
while(p->next!=NULL)
{
stack[++top]=p->next;
p=p->next;
}
p=ln;
while(top!=-1)
{
q=stack[top--];
p->next=q;
p=p->next;
}
p->next=NULL;
}
int main()
{
LNode *ln=new LNode();
create(ln);
cout << "打印链表" << endl;
print(ln);
sort(ln);
cout << "排序后" << endl;
print(ln);
return 0;
}
单链表重新排序
最新推荐文章于 2023-05-31 09:00:00 发布