题目:

反向输出一个链表-原地逆置

程序分析

  • 在我们创建链表的时候使用头插法创建的链表,其顺序就是逆序的,我们可以在该链表的基础上进行逆置

主要代码

main.c

typedef struct Node{int data;struct Node* next;
}Node,*LinkList;
//带有头结点的尾插法创建链表
LinkList creste(int n){LinkList head=(Node*)malloc(sizeof(Node));Node *p=head;Node *q;int i;printf("请输入个结点的元素值:\n");for (i = 0; i < n; i++){q=(Node*)malloc(sizeof(Node));scanf("%d",&q->data);p->next=q;p=q;}p->next=NULL;return head;
}
//原地逆置(后面的元素使用头插法,使其逆序)
LinkList reverse(LinkList L){Node *prep;Node *p,*q;p=L->next;q=p->next;p->next=NULL;while (q){prep=q;q=q->next;prep->next=p;p=prep;}L->next=prep;return L;
}
void Print(LinkList L){L=L->next;while (L){printf("%3d",L->data);L=L->next;}printf("\n");
}
int main(){printf("请输入你要创建的链表长度:\n");int n;scanf("%d",&n);LinkList L=creste(n);printf("当前链表的数据如下:\n");Print(L);printf("链表元素逆置后是:\n");Print(reverse(L));system("pause");return 0;
}

运行结果

今日巩固

  1. 再次巩固了链表的头插法的创建过程

每日程序C语言43-链表原地逆置相关推荐

  1. c语言中单链表的逆置

    单链表的逆置方法这里介绍两种(头插法和原地逆置法) 头插法 通过两个指针的移动,以原表的头指针为中间量,让原表的元素依次连接在逆置表的表头 typedef struct node {int data; ...

  2. C++ 头插法建立单链表,单链表原地逆置以及尾插法建立单链表

    #include <iostream> #include <stdlib.h> #include <cstdio> typedef int ElemType; us ...

  3. 头插法逆置单向链表c语言,单链表的逆置(头插法和就地逆置)

    今天课间的时候偶然看到了一个面试题:单链表的逆置,看了题解感觉乖乖的,貌似和以前看的版本不搭,于是重新进行了一番探究 单链表的逆置分为两种方法:头插法和就地逆置法,这两种方法虽然都能够达到逆置的效果, ...

  4. 55-将单链表原地逆置(三种方法)

    方法1:用三个指针实现单链表(有头结点)的逆置 void Reverse(HeadList *head) {if(head==NULL||head->next==NULL||head->n ...

  5. c语言单链表就地逆置编程,C++ 单链表的 就地逆置 ,以及基本操作

    #include "stdafx.h" #define sub(a,b) a-b //没用 #include using namespace std; struct node { ...

  6. C语言实现单链表的逆置-实训

    任务描述 本关需要你设计一个程序,实现单链表的逆置. 相关知识 单链表的逆置分为两种方法:头插法和就地逆置法,这两种方法虽然都能够达到逆置的效果,但还是有着不小的差别. 编程要求 按程序提示输入并创建 ...

  7. 逆置单链表c语言程序,(数据结构C语言版)顺序表和单链表的逆置

    <(数据结构C语言版)顺序表和单链表的逆置>由会员分享,可在线阅读,更多相关<(数据结构C语言版)顺序表和单链表的逆置(7页珍藏版)>请在人人文库网上搜索. 1.实验1-1顺序 ...

  8. 每日程序C语言5-斐波那契兔子数

    每日程序C语言 题目 古典问题,有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后又生一对兔子,假如兔子都不死,问每个月的兔子总数是多少? 算法分析 兔子的对数符合斐波那契数列 斐 ...

  9. 每日程序C语言3-三个数大小排序

    每日程序C语言 题目 输入三个数,按照从小到大的顺序输出 算法分析 在三个数中找出最小的数 比较剩下两个数的大小 依次输出 代码 void sort(int x,int y,int z){if(x&g ...

最新文章

  1. NET使用了UpdatePanel后如何弹出对话框!
  2. vscode使用教程python-用VScode配置Python开发环境
  3. 他是中国投资最厉害的人:投网易一战成名 是巴菲特忠实信徒
  4. 深入理解JVM虚拟机(五):字节码指令简介
  5. java math round小数_Java Math round() 使用方法及示例
  6. Nutch使用方法简介
  7. synchronized【Java】中使用的demo
  8. pku 2418 Hardwood Species 字典树
  9. 梅森素数为什么这么重要?
  10. 2020笔记本性价比之王_什么笔记本性价比高?2020性价比最高的笔记本电脑
  11. @Override must override a superclass method
  12. STemwin替换为MDK下的emwin
  13. 循环计数_FOR 循环
  14. TFTP服务器的搭建与使用
  15. Scrapy 爬取链家租房价格信息
  16. 绿化版IDEA启动时报IF you already have a 64-bit jdk错误的解决
  17. 用Xcode构建猜国旗游戏案例分享
  18. 《程序员的创世传说》设定资料
  19. 微软校园招聘面试经历
  20. 这年头Windows电脑还需要杀毒软件吗?

热门文章

  1. 计算机应用基础简单实操,浅谈《计算机应用基础》实操课的教学管理
  2. truncate table 非常慢_你真的知道怎么分析mysql的慢sql吗?
  3. write up::web 实战2-注入 --sqlmap注入版
  4. Serverless 工程实践 | 快速搭建 Kubeless 平台
  5. 低代码平台是“业务上云”走向万千企业的最后一公里
  6. 在 Kubernetes 上弹性深度学习训练利器 - Elastic Training Operator
  7. 云计算的新界面—Kubernetes容器技术
  8. 开发者社区精选直播合集一览
  9. 揭秘 MWU 最佳画质游戏《永劫无间》技术历程
  10. Unity开发者如何有效地进行本土化