//函数fun功能是将带头节点的单向链表结点域中的数据从小到大排序。

//相当于数组的冒泡排序。

 #include  <stdio.h>
#include <stdlib.h>
#define N 6
typedef struct node {
int data;
struct node *next;
} NODE;
void fun(NODE *h)
{ NODE *p, *q; int t;
/**********found**********/
p = h->next;//头结点的指向赋值
while (p) {
/**********found**********/
q = p->next ;
while (q) {
/**********found**********/
if (p->data > q->data)
{ t = p->data; p->data = q->data; q->data = t; }
q = q->next;//相当于数组第一个数与之后所有数进行一次比较。
}
p = p->next;
}
}
NODE *creatlist(int a[])
{ NODE *h,*p,*q; int i;
h = (NODE *)malloc(sizeof(NODE));
h->next = NULL;
for(i=; i<N; i++)
{ q=(NODE *)malloc(sizeof(NODE));
q->data=a[i];
q->next = NULL;
if (h->next == NULL) h->next = p = q;
else { p->next = q; p = q; }
}
return h;
}
void outlist(NODE *h)
{ NODE *p;
p = h->next;
if (p==NULL) printf("The list is NULL!\n");
else
{ printf("\nHead ");
do
{ printf("->%d", p->data); p=p->next; }
while(p!=NULL);
printf("->End\n");
}
}
void main()
{ NODE *head;
int a[N]= {, , , , , };
head=creatlist(a);//创建链表
printf("\nThe original list:\n");
outlist(head);
fun(head);
printf("\nThe list after sorting :\n");
outlist(head);
}

//建立一个带头节点的单向链表,并用随机函数为各个结点数据域赋值,函数fun作用求出单向链表结点(不包括头节点)数据域中的最大值。

 #include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct aa
{ int data;
struct aa *next;
} NODE;
int fun (NODE *h)
{ int max=-;
NODE *p;
/*************found**************/
p=h->next;
while(p)
{ if(p->data>max)
max=p->data;
/*************found**************/
p=p->next;
}
return max;
}
void outresult(int s, FILE *pf)
{ fprintf(pf, "\nThe max in link :%d\n",s);
}
NODE *creatlink(int n, int m)
{ NODE *h,*p,*s;
int i;
h=p=(NODE *)malloc(sizeof(NODE));
h->data=;
for(i=;i<=n;i++)
{ s=(NODE *) malloc(sizeof(NODE));
s->data=rand()%m; s->next=p->next;
p->next=s; p=p->next;
}
p->next=NULL;
return h;
}
void outlink(NODE *h,FILE *pf)
{ NODE *p;
p=h->next;
fprintf(pf, "\n The LIST :\n\n HEAD");
while(p)
{ fprintf(pf, "->%d",p->data);
p=p->next;}
fprintf(pf, "\n");
}
void main()
{ NODE *head; int m;
system("CLS");
head=creatlink(,);//创建链表
outlink(head,stdout);
m=fun(head);
printf("\nThe RESULT :\n");
outresult(m,stdout);
}

//函数功能:将M*N的二维数组中的数据,按行依次放入一维数组,个数存储在形参n所指的存储单元。

 #include <stdio.h>
void fun (int (*s)[], int *b, int *n, int mm, int nn)
{
int i=;
for (int m = ; m < mm; m++)
{
for (int n = ; n < nn; n++)
{
b[i++] = s[m][n];
}
}
*n = i;
}
void main()
{
FILE *wf;
int w[][]={{,,,},{,,,},{,,,}}, i, j;
int a[]={},n= ;
printf("The matrix:\n");
for (i=; i<; i++)
{for (j=;j<;j++)
printf("%3d",w[i][j]);
printf("\n");
}
fun(w,a,&n,,);
printf("The A array:\n");
for(i=; i<n; i++)
printf("%3d",a[i]);
printf("\n\n");
/******************************/
wf=fopen("out.dat","w");
for(i=; i<n; i++)
fprintf(wf,"%3d",a[i]);
fclose(wf);
/*****************************/
}

C语言:将带头节点的单向链表结点域中的数据从小到大排序。-求出单向链表结点(不包括头节点)数据域中的最大值。-将M*N的二维数组中的数据,按行依次放入一维数组,的更多相关文章

  1. QRCode二维码生成方案及其在带LOGO型二维码中的应用(1)

    原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(1) 提要:很多公司为商业宣传之需,常将企业LOGO加入二维码中,但如果LOGO遮挡区域足够地大,二维码就变得无法识别.那么,有没有一 ...

  2. QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)

    原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 续前:QRCode二维码生成方案及其在带LOGO型二维码中的应用(1)  http://blog.csdn.net/johnsu ...

  3. Structure From Motion(二维运动图像中的三维重建)

    SfM(Structure from Motion)简介 Structure from motion (SfM) is a photogrammetric range imaging techniqu ...

  4. Python算法之动态规划(Dynamic Programming)解析:二维矩阵中的醉汉(魔改版leetcode出界的路径数)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_168 现在很多互联网企业学聪明了,知道应聘者有目的性的刷Leetcode原题,用来应付算法题面试,所以开始对这些题进行" ...

  5. C语言:将3*4矩阵中找出行最大,列最小的那个元素。-将低于平均值的人数作为函数返回值,将低于平均分的分数放入below数组中。

    //将3*4矩阵中找出行最大,列最小的那个元素. #include <stdio.h> #define M 3 #define N 4 void fun(int (*a)[N]) { ,j ...

  6. 输入一个字符串,内有数字和非数字字符。例如:a123x456 17960 302tab5876。将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在a[0],456放在a[1]……统计共有多少个整数,并输出这些数。

    题目内容:输入一个字符串,内有数字和非数字字符.例如:a123x456 17960 302tab5876.将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在a[0],456放在a[1 ...

  7. 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。

    package algorithms; /* 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. public class ListNode { int val; ListNo ...

  8. PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)

    一.先看最简单的情况. 有两个数组: $arr1 = array(1, 9, 5); $arr2 = array(6, 2, 4); array_multisort($arr1, $arr2); pr ...

  9. 01二维矩阵中最大全为1的正方形maxSquare——经典DP问题(二维)

    在一个二维01矩阵中找到全为1的最大正方形 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 以矩阵中每一个点作为正方形右下角点来处理,而以该点为右下角点的最大边长最多比 ...

随机推荐

  1. 自制yum源离线安装ansible

    适应场景 在实际生产环境中,服务器往往是不能访问互联网,如果简单的下载ansible源码安装,会碰到缺少各种依赖包的问题,因此,推荐制作yum源,然后使用yum安装ansible. 实验环境 模拟可以 ...

  2. el-popover 点击input框出现table表,可点击选中,可拼音检索完回车选中

    <template> <card> <el-popover placement="right" width="400" trigg ...

  3. 使用BeautifulSoup爬取汽车之家新闻

    1 先select到改数据上层的标签,取第一个[0],然后attrs获取单标签里面的内容,或者get_text获取成对标签内文本2 find就是明确了标签之后,是唯一的,就可以使用find(标签名). ...

  4. Contos7下安装Redis

    第一步:在线下载Redis的安装包 cd /opt/ wget http://download.redis.io/releases/redis-5.0.2.tar.gz `ps:也可自行下载到本地,让 ...

  5. spring(四):IoC

    IoC-Inversion of Control,即控制反转 IoC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制. 理解IoC的关键:"谁控制谁,控制什么,为何是反 ...

  6. js设计模式之实现观察者模式实例代码

    前端界面 html代码 <body> <select name="" id="select"> <option value=&qu ...

  7. Servlet文件上传下载

    今天我们来学习Servlet文件上传下载 Servlet文件上传主要是使用了ServletInputStream读取流的方法,其读取方法与普通的文件流相同. 一.文件上传相关原理 第一步,构建一个up ...

  8. (c#)最小绝对差

    题目 解

  9. Tex 一些命令

    1. [!htp] 可以使这个内容跟随在前面的内容后面 假如前面是一段文字,后面是一幅图像,不知什么原因跑到其他地方去了.这时加个[!htp]可以使他紧紧跟在后面 ergdsgagdfgdfgfgaf ...

  10. 【转载】Java反射机制详解

    转自:http://baike.xsoftlab.net/view/209.html#3_8 1反射机制是什么 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对 ...