#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN sizeof(Node)
struct student
{
char name[10];
struct student *next;
}Node;
struct student *head = NULL;
void InitList()
{
if(head == NULL)
{
head = (struct student*)malloc(LEN);
if(!head)
{
perror("malloc");
exit(1);
}
}
head -> next = NULL;
}
void CreateList()
{
struct student *p = head;
struct student *q = (struct student*)malloc(LEN);
printf("Please input name:");
scanf("%s",q -> name);
while(p -> next)
{
p = p -> next;
}
p -> next = q;
q -> next = NULL;
}
void printlist()
{
struct student *p = head -> next;
while(p)
{
printf("name = %s\n",p -> name);
p = p -> next;
}
}
/*void Reverse_List()
{
struct student *p = head -> next;
struct student *q;
head -> next = NULL;
while(p)
{
q = p;
p = p -> next;
q -> next = head -> next;
head -> next = q;
}
}*/
void Reverse_List()
{
struct student *p = head -> next;
head -> next = NULL;
struct student *q;
while(p)
{
q = p;
p = p -> next;
q -> next = head -> next;
head -> next = q;
}
}
int main()
{
int i,n;
printf("Please input num:");
scanf("%d",&n);
InitList();
for(i = 0 ; i < n; i++)
{
CreateList();
}
printlist();
Reverse_List();
printlist();
}
单链表的断链逆序
最新推荐文章于 2024-08-05 09:00:00 发布