#include
#include
#define MAXSIZE 50
//定义链表节点结构、
typedef struct Node{
char data;
struct Node* next;
}LinkNode, *LinkNodePtr;
//将字符初始为链表
LinkNodePtr Init(LinkNodePtr head, char *str){
int i=0;
//申请头指针内存
LinkNodePtr pre;
head = (LinkNodePtr)malloc(sizeof(LinkNode));
if(head == NULL){
exit(0);
}
head->data = str[i];
i++;
head->next = NULL;
pre= head;
while(str[i] != '\0'){
struct Node* temp = (LinkNodePtr)malloc(sizeof(LinkNode));
temp->data = str[i];
temp->next = NULL;
pre ->next = temp;
pre = temp;
i++;
}
return head;
}
//逆序输出链表
//使用递归输出
void backward(LinkNodePtr head){
if(!head){
exit(0);
}
if(head->next ==NULL){
printf("%c ",head->data);
}else{
backward(head->next);
printf("%c ",head->data);
}
}
int main(){
char str[MAXSIZE];
LinkNodePtr head= NULL;
printf("请输入字符串:");
scanf("%s",str);
//初始化链表
head = Init(head,str);
//逆序输出链表
backward(head);
return 0;
}