当前位置: 首页 > news >正文

ZJGSU 1737 链表

题目描述

请根据输入数据构造一个带头结点的单链表,链表结点的数据结构为struct node {int data; struct node *next;},试设计算法:按递增次序输出单链表中各结点的数据元素,并释放结点所占用的存储空间。

要求:不允许使用数组作为辅助存储空间。

输入

每组测试数据包括两行,第一行为单链表中的元素个数n;第二行为n个元素的值。

输出

排序后的元素值,每组测试数据输出占一行,行末无空格。

样例输入

6 4 5 9 3 2 1

样例输出

1 2 3 4 5 9

#include<stdio.h>
#include<stdlib.h>
struct node {int data;struct node *next;
};
void Insert(struct node*p,int i,int a)//插入新元素(尾插)
{while(p->next){p=p->next;}struct node ss;struct node *s;//每新加一个元素就要申请一块新的内存来存储新元素s=(struct node*)malloc(sizeof(ss));//然后再把它连接到原先的链表当中s->data=a;s->next=NULL;p->next=s;
}
int main()
{int n;scanf("%d",&n);struct node *p;struct node nn;p=(struct node*)malloc(sizeof(nn));if(p==NULL)return -1;p->next=NULL;//初始化头指针for(int i=0;i<n;i++){int a;scanf("%d",&a);Insert(p,i,a);//每输入一个元素,插入一次}struct node*tail=p;while(tail!=NULL)tail=tail->next;for(int i=0;i<n;i++)//冒泡排序{struct node*curr=p->next;struct node*pre=p;for(int j=0;j<n-1;j++){if(curr->data>curr->next->data){struct node*q=curr->next->next;pre->next=curr->next;curr->next->next=curr;curr->next=q;if(curr->next==tail)tail=curr;//尾指针特判}pre=pre->next;curr=pre->next;}}p=p->next;while(p->next){printf("%d ",p->data);p=p->next;}printf("%d",p->data);//这里是怕行末无空格,所以最后一个元素分开输出了free(p);
}

http://www.lryc.cn/news/312429.html

相关文章:

  • Java开发人员不得不收集的代码,java软件开发面试常见问题
  • 浅谈块存储、文件存储、对象存储
  • 2024年 Python面试热点
  • Map集合体系——遍历,HashMap,TreeMap,LikedHashMap
  • docker mysql主从复制
  • iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践
  • Redis的事务
  • 4.2 比多数opencv函数效果更好的二值化(python)
  • webpack打包一个文件,做了哪些事情
  • 设计模式学习笔记 - 设计原则 - 6.KISS原则和YAGNI原则
  • 【Vue3-vite】动态导入路由
  • C++——string类
  • 进制转换md5绕过 [安洵杯 2019]easy_web1
  • .kat6.l6st6r勒索病毒的最新威胁:如何恢复您的数据?
  • Day 6.有名信号量(信号灯)、网络的相关概念和发端
  • MySQL 常用优化方式
  • 算法刷题day22:双指针
  • 山人求道篇:八、模型的偏差与交易认知
  • MySQL 元数据锁及问题排查(Metadata Locks MDL)
  • JS中的函数
  • 微信小程序开发常用的布局
  • Effective C++ 学习笔记 条款10 令operator=返回一个reference to *this
  • 算法简单试题
  • CSS 自测题 -- 用 flex 布局绘制骰子(一、二、三【含斜三点】、四、五、六点)
  • 蓝桥集训之牛的学术圈 I
  • 软件设计师软考题目解析21 --每日五题
  • python读写json文件详解
  • #include<ros/ros.h>头文件报错
  • mybatis单表curd笔记(尚硅谷
  • 在线重定义-操作步骤