#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <Windows.h>
typedef struct node
{
int data; //数据域
struct node* next; //指针域
}SingleList;
//初始化
SingleList* init_SingleList()
{
SingleList* list;
list = (SingleList*)malloc(sizeof(SingleList)); //开辟空间
if (list == NULL)
{
return NULL;
}
list->data = 0;
list->next = NULL;
return list;
}
//尾插法创建单链表
SingleList* create_SingleListByTail(SingleList* list)
{
SingleList* head, * pCreate, * pMove;
int num, data;
head = (SingleList*)malloc(sizeof(SingleList));
head = list;
if (head == NULL)
{
return NULL;
}
else
{
head->next = NULL;
}
pMove = head;
printf("请输入要插入的结点数:");
scanf_s("%d", &num);
for (int i = 0; i < num; i++)
{
scanf_s("%d", &data);
pCreate = (SingleList*)malloc(sizeof(SingleList));
if (pCreate == NULL)
{
return NULL;
}
pCreate->data = data;
pCreate->next = NULL;
//插入结点操作
pMove->next = pCreate;
pMove = pCreate;
}
return list;
}
//逆置链表
void reverse_SingleList(SingleList* list)
{
SingleList* pMove, * pre = NULL, * pBehind;
if (list == NULL)
exit(0);
pMove = list->next;
while (pMove != NULL)
{
pBehind = pMove->next; //保存后继结点
pMove->next = pre; //改当前结点的指针指向,让其指向前驱结点
//指针下移
pre = pMove;
pMove = pBehind;
}
list->next = pre; //更改头结点的指向
}
//销毁单链表
void destory_SingleList(SingleList* list)
{
SingleList* currentNode, * nextNode;
currentNode = list->next;
while (currentNode != NULL)
{
nextNode = currentNode->next;
free(currentNode);
currentNode = nextNode;
}
free(list);
list = NULL;
}
//打印
void printf_SingleList(SingleList* list)
{
SingleList* pMove;
pMove = list->next;
while (pMove != NULL)
{
printf("%d ", pMove->data);
pMove = pMove->next;
}
printf("\n");
}
int main(void)
{
SingleList* list, * myList;
list = init_SingleList(); //初始化
myList = create_SingleListByTail(list); //尾插法创建单链表
printf("初始链表为:\n");
printf_SingleList(myList); //打印
reverse_SingleList(myList); //逆置链表
printf("逆置后的链表为:");
printf_SingleList(myList);
destory_SingleList(myList);
system("pause");
return EXIT_SUCCESS;
}
原文地址:https://www.jb51.cc/wenti/3287679.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。