单链表逆置
来源:互联网 发布:微软编程一小时 编辑:程序博客网 时间:2024/06/05 14:52
3、写一算法,将单链表就地逆置。
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct node{ int data;struct node *next;}Node;void Init_Node(Node *node);Node* Create_List(int listLength);void Reverse(Node *head);void Print(Node *head);void main(){Node *listA; listA=Create_List(5);printf("原来的单链表的数据元素为:");Print(listA); Reverse(listA);printf("重置完毕后的单链表的数据元素为:");Print(listA);printf("程序运行完毕\n");}void Init_Node(Node *node){node->next=NULL;node->data=0;}Node* Create_List(int listLength){printf("正在申请一个长度为%d的带头结点的单链表\n",listLength);Node *head,*tail,*newNode;int data;head=(Node *)malloc(sizeof(Node));if(head==NULL) {printf("申请内存失败\n");return NULL;} tail=head;tail->next=NULL;int i=1; while(listLength--){ newNode=(Node *)malloc(sizeof(Node));Init_Node(newNode);printf("请输入第%d个节点的数据",i++); scanf("%d",&data);newNode->data=data;tail->next=newNode;tail=newNode;}return head;printf("单链表创建完毕");} void Reverse(Node *head) { Node *p,*q; p = head->next; head->next = NULL; while(p != NULL){ q = p->next; p->next = head->next; head->next = p; p = q; }}void Print(Node *head){ Node *node;node=head->next;int i=0;while(node!=NULL){ printf("%d ",node->data);node=node->next;i++;if(i==10)break;}printf("Print完毕\n");}
阅读全文
1 0
- 单链表逆置
- 单链表逆置
- 单链表逆置。
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 单链表逆置
- 一个Swifter的Kotlin学习——Kotlin 基本语法
- Deepin Software编程
- Eclipse设置背景颜色、字体及代码提示
- 魔族密码(Vijos-1028)
- 教你快速使用AndroidStudio制作出一张合格.9图片
- 单链表逆置
- 执行脚本出现bin/bash: bad interpreter: No such file or directory
- Ambiguous mapping found. Cannot map 'complaintController' bean method
- 使用myeclipse的hibernate reverse engineering(反向工程)的两个问题
- oracle adg搭建
- 关于OLAP立方体的按纬度筛选与排序的作图笔记
- C++ STL 一般总结
- ROS RViz基本学习笔记(一)
- Air Raid 最小路径覆盖问题