问题补充说明:选用C或C++编程语言,描述一动态链表数据结构,其中每一链的内容为一个字母。构造一个函数reverse,其输入输出均为指向此类数据结构的指针,而输出链表为输入链表的逆排列。输入可能是空集.(1)完成reverse函数(2)完成一个链表打印函数prinrtlist,输入为链表的指针,依次打印每个链表元素内容。如:A B C NULL
#include<stdio.h>
#include<stdlib.h>
t来自ypedefstruc360问答t_node{
intvalue;
struct_node*next;
}node;
node*make_node(intv督类站映流从县祖鱼传alue){
node*new_node=(node*)malloc(sizeof亮价才跑(node));
new_node->value=value;
new_node->ne控简括富曲xt=0;
returnnew_node;
}
node*add_after(node*pos,intvalue){
node*new_node=make_node(value);
pos->next=new_nod表市州养合和低师烧沉e;
returnnew_node;
}
voidprin福员甚厚活让适厂个渐现t_node_list(node*head){
while(head){
printf("%d",head->v问alue);
head=head->next;
}
printf("\n");
}
voidfree_node_list(node*head){
node*temp;
while(head){
temp=hea仍岩片游口言云答远端量d;
head=head->next;
free(temp);
保际斯等应哪府席列试}
}
node*reverse(node*head){
政怎node*f=0,*s=0;
while(head){
班果刚战f=s;
s=head;
head=head->next;
s->next注巴盟=f;
}
returns;
}
intmain(){
inti=0;
node*head=make_node(i),*last=head;
while(i<10){
last=add_after(last,++i);
}
print_node_list(head);
head=reverse(head);
print_node图自烈乱序困_list(head);
free_node_list(head);
r呼景每eturn0;
}
标签:C++,reverse,函数