现有这样的一个单链表,现在需要完成它的逆置,怎么做???
struct Node{int data;Node *next;};
Node Head; //头结点
Node *DLList; //头指针
DLList=&Head; //使头指针指向头结点Head.next=NULL;
void init(Node *DLList){
int length;
Node *p,*q;
while (1){
cout << "输入元素个数(0-" << 10000 << "):" << flush;cin >> length;
if (length >= 0 && length <= 10000)break;
cout << endl;
}
int i;
while (1)
{ cout << "输入随机数种子(0-32767):" << flush;
cin >> i;
if (i >= 0 && i <= 32767)break;cout << endl;
} //从线性表中删除并释放原有的结点,使其成为空表
p=DLList;
while (p->next!=NULL){
q=p->next;
p->next=q->next;
free(q);}
srand(i); //指定随机数种子,相同的种子将产生相同的数据序列
rand(); //向线性表插入length个新结点
for (int j=1;j<=length;j++) {
p=new Node;
p->next=DLList->next;
DLList->next=p;
p->data=rand() % 10000; }}
struct Node{int data;Node *next;};
Node Head; //头结点
Node *DLList; //头指针
DLList=&Head; //使头指针指向头结点Head.next=NULL;
void init(Node *DLList){
int length;
Node *p,*q;
while (1){
cout << "输入元素个数(0-" << 10000 << "):" << flush;cin >> length;
if (length >= 0 && length <= 10000)break;
cout << endl;
}
int i;
while (1)
{ cout << "输入随机数种子(0-32767):" << flush;
cin >> i;
if (i >= 0 && i <= 32767)break;cout << endl;
} //从线性表中删除并释放原有的结点,使其成为空表
p=DLList;
while (p->next!=NULL){
q=p->next;
p->next=q->next;
free(q);}
srand(i); //指定随机数种子,相同的种子将产生相同的数据序列
rand(); //向线性表插入length个新结点
for (int j=1;j<=length;j++) {
p=new Node;
p->next=DLList->next;
DLList->next=p;
p->data=rand() % 10000; }}