#include<stdio.h>
#include<stdlib.h>
struct node
{
   int data;
   struct node *next;
};
int main()
{
   struct node *head, *p, *q, *t;
   int i, n, a;
   scanf("%d", &n);
   head = NULL;
   for(i=1; i<=n; i++)
  {
       scanf("%d", &a);
       //动态申请一个空间,用来存放一个结点,并用临时指针p指向这个结点
       p = (struct node *)malloc(sizeof(struct node));
       p->data = a;
       p->next = NULL;
       if(head==NULL) head=p;
       else q->next=p;
       q = p;
  }
   t = head;
   while(t!=NULL)
  {
       printf("%d ", t->data);
       t = t->next;
  }
   return 0;
}
//链表插入数据
#include<stdio.h>
#include<stdlib.h>
struct node
{
   int data;
   struct node *next;
};
int main()
{
   struct node *head, *p, *q, *t;
   int i, n, a;
   scanf("%d", &n);
   head=NULL;
   for(i=0; i<n; i++)
  {
       scanf("%d", &a);
       p = (struct node *)malloc(sizeof(struct node));
       p->data = a;
       p->next = NULL;
       if(head==NULL) head=p;
       else q->next = p;
       q = p;
  }
   scanf("%d", &a);//待插入的数
   t = head;
   while(t!=NULL)
  {
       if(t->next->data > a)
      {
           p = (struct node *)malloc(sizeof(struct node));
           p->data = a;
           p->next = t->next;
           t->next = p;
           break;
      }
       t = t->next;
  }
   t = head;
   while(t!=NULL)
  {
       printf("%d ", t->data);
       t = t->next;
  }
   return 0;
}

>9 >2 3 5 8 9 10 18 26 32 >6 2 3 5 6 8 9 10 18 26 32

//模拟链表
#include<stdio.h>
int main()
{
int data[101], right[101];
//data表示数据,right表示序列右边的数的下标号
int i, n, t, len;
//读入已有的数
scanf("%d", &n);
for(i=1; i<=n; i++)
scanf("%d", &data[i]);
len = n;
//初始化数组right
for(i=1; i<=n; i++)
{
if(i!=n) right[i] = i+1;
else right[i] = 0;
}
len++;
scanf("%d", &data[len]);
t = 1;//从头部开始遍历
while(t!=0)
{
if(data[right[t]]>data[len])
{
right[len] = right[t];
right[t] = len;
break;
}
t = right[t];
}
t = 1;
while(t!=0)
{
printf("%d ", data[t]);
t = right[t];
}
return 0;
}

9 2 3 5 8 9 10 18 26 32 6 2 3 5 6 8 9 10 18 26 32

C语言 链表操作的更多相关文章

  1. C语言链表操作模板(添加,删除,遍历,排序)

    C语言链表操作模板,摘自郝斌的C语言视频教程,简单的修改成了纯C格式.当年照着视频学习的时候记录下来的,在使用的时候直接拿来修改修改修改能节约不少时间的. /********************* ...

  2. ZT C语言链表操作(新增单向链表的逆序建立)

    这个不好懂,不如看 转贴:C语言链表基本操作http://www.cnblogs.com/jeanschen/p/3542668.html ZT 链表逆序http://www.cnblogs.com/ ...

  3. C 语言链表操作例程 (待完善)

    #include<stdio.h>#include<malloc.h>#include<conio.h>#include<stdlib.h>#inclu ...

  4. C语言,单链表操作(增删改查)(version 0.1)

    这天要面试,提前把链表操作重新写了一遍.备份一下,以备不时之需. 希望有人能看到这篇代码,并指正. // File Name : list.h #include "stdafx.h" ...

  5. c语言实现--带头结点单链表操作

    可能是顺序表研究的细致了一点,单链表操作一下子就实现了.这里先实现带头结点的单链表操作. 大概有以下知识点. 1;结点:结点就是单链表中研究的数据元素,结点中存储数据的部分称为数据域,存储直接后继地址 ...

  6. C语言 链表

    原文:C语言 链表 最近在复习数据结构,想把数据结构里面涉及的都自己实现一下,完全是用C语言实现的. 自己编写的不是很好,大家可以参考,有错误希望帮忙指正,现在正处于编写阶段,一共将要实现19个功能. ...

  7. C语言链表实例--玩转链表

    下图为最一简单链表的示意图: 第 0 个结点称为头结点,它存放有第一个结点的首地址,它没有数据,只是一个指针变量.以下的每个结点都分为两个域,一个是数据域,存放各种实际的数据,如学号 num,姓名 n ...

  8. JAVA 链表操作:循环链表

    主要分析示例: 一.循环链表简述 二.单链表循环链表 三.双链表循环链表 一.循环链表简述 循环链表即链表形成了一个循环的结构,尾节点不再指向NULL,而是指向头节点HEAD,此时判定链表的结束是尾节 ...

  9. go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )

    go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 点击加入 文件操作 func Open(name string) (file *File ...

  10. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

随机推荐

  1. 私有网盘+在线文档:内网离线搭建NextCloud+OnlyOffice详细指南

    背景 最近因为工作需要,一堆内网的虚拟机之间需要频繁cp一些文件.视频等,因为都是麒麟系统,有桌面版有服务器版,用scp这种工具也是比较繁琐,索性就搭建一套内网用的共享网盘和在线文档,既方便了自己,也 ...

  2. docker - 将几个目录复制到另一个目录

    您如何将多个目录复制到Docker中的目标目录?我不想复制目录内容,而是复制整个目录结构.COPY和ADD命令复制目录内容,展平结构,这是我不想要的.也就是说,如果这些是我的来源: . ├── a │ ...

  3. Qt/C++编写onvif工具(搜索/云台/预置位/OSD/录像存储)

    一.前言 从最初编写这个工具开始的时间算起来,至少5年多,一直持续完善到今天,这个工具看起来小也不小大也不大,但是也是经历过无数个现场的洗礼,毫不夸张的说,市面上能够遇到的主流的厂商的设备,都测试过, ...

  4. Qt编写可视化大屏电子看板系统16-标准柱状图

    一.前言 标准柱状图是大屏系统中最常用的一种展示数据效果图,提供不同的柱子显示数据值,在QCustomPlot的基础上拓展了顶部显示对应的值,不同的柱子不同的颜色,同时还可以调用内置的触发报警颜色的机 ...

  5. Qt编写的项目作品36-秘钥生成工具

    一.功能特点 (一)常规秘钥机制 远程联网激活,每次启动都联网查看使用时间等,这种方法最完美,缺点是没法联网的设备就歇菜了,而很多设备都是要求离线使用无法联网. 通过获取本地的硬盘+CPU等硬件的编号 ...

  6. Qt音视频开发45-视频传输TCP版

    一.前言 做音视频开发,会遇到将音视频重新转发出去的需求,当然终极大法是推流转发,还有一些简单的场景是直接自定义协议将视频传出去就行,局域网的话速度还是不错的.很多年前就做过类似的项目,无非就是将本地 ...

  7. 昔日移动端IM明星 “米聊” 即将停止服务

    2021年1月19日,小米旗下米聊宣布,将于2021年2月19日12点停止米聊的服务. 1.以下消息来自米聊官网   2.关于米聊 米聊是小米科技出品的一款免费即时通讯工具,推出时间为:2010年12 ...

  8. 夜莺监控支持 ES 日志告警了

    夜莺项目( https://github.com/ccfos/nightingale )发布了 v8.0.0-beta.3 版本,这个版本主要是支持了 ES 日志告警,下面给大家介绍一下. 新版本下载 ...

  9. Redis学习笔记之Jedis

    Jedis语法总结 Jedis是Java代码操作Redis的工具包,里面封装了操作Redis的方法 Jedis jedis = new Jedis(String ip , String port) 1 ...

  10. 创建企业级地理数据库——PostgreSQL版

    创建PostgreSQL空间数据库 填写相应的参数,选择授权文件 报错 默认安装postgresql后,执行以上操作报错 "You must copy the latest ST_GEOME ...