#include?<string.h>
typedef?struct?Record
{
int?n;
char?s[5];
Record?*next;
}Record,*RList;
void?buildList(RList?&list)//創建鏈表?
{
Record?*p;
list=new?Record;//創建頭結點,不存儲數據?
p=list;
for(int?i=0;i<10;i++)
{
p->next=new?Record;
p=p->next;?
p->n=i;
strcpy(p->s,"str");
p->s[3]=i+0x30;//將數字i轉換成對應字符
p->s[4]='\0';//字符串結尾
}
p->next=NULL;//鏈表結束?
}
void?reverseList(RList?list)//逆置鏈表?
{
Record?*p=list->next->next,*r;
list->next->next=NULL;//鏈表尾?
//頭插法
while(p)
{
r=p->next;
p->next=list->next;
list->next=p;
p=r;
}
}
void?printList(RList?list)//打印鏈表
{
Record?*p?=?list->next;
while(p)
{
printf("n=%d?s=%s\n",p->n,p->s);
p=p->next;
}
}?
int?main(int?argc,?char**?argv)?{
RList?list;
buildList(list);
printf("\n順序輸出:\n");
printList(list);
printf("\n倒序輸出:\n");
reverseList(list);
printList(list);
reverseList(list);//還原鏈表
return?0;
}