您的位置:首页 > 其它

单链表的逆置(头插法)

2014-07-11 10:02 169 查看
#include <iostream>
#include <cstdlib>
using namespace std;
struct node
{
int data;
struct node *next;
}*root;
void Init()
{
node *p = (node *)malloc(sizeof(node));
root = p;
for(int i = 1; i <= 10; i ++)
{
node *k = (node *)malloc(sizeof(node));
k -> data = i;
k -> next = NULL;
p -> next = k;
p = p-> next;
}
}
void print()
{
node *p = root;
while(p -> next != NULL)
{
cout << p -> next -> data << " ";
p = p -> next;
}
cout << endl;
}
void swap()
{
node *p1,*p2;
p1 = root -> next;
root -> next = NULL;
while(p1 != NULL)
{
p2 = p1 -> next;
p1 -> next = root -> next;
root -> next = p1;
p1 = p2;
}
}
int main()
{
Init();//建链表
print();//输出
swap();//逆置
print();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: