稀疏矩阵的三元组顺序表的C语言实现

对于没有排序功能的集合来说,都可以使用java.util.Collections.sort()方法进行排序,它除了集合对象以外,还需要提供一个比较器。如果列表中的元素全部都是相同的类型,并且这个类实现了Comparable接口,就可以简单的调用Collections.sort()方法,如果这个类没有实现comparable接口,那么可以创建一个比较器传递一个Comparator实例作为Sort()的第二个参数进行排序,另外,如果不想使用默认的分类顺序进行排序,同样也可以传递一个Comparator实例作为参数来进行排序。
package Bible001;
import java.util.*;
//类通过实现comparable接口进行排序和利用创建比较器进行排序。
public class SortTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		List<Student> list=new ArrayList<Student>();
		list.add(new Student("stu001",21));
		list.add(new Student("stu003",29));
		list.add(new Student("stu002",25));
		list.add(new Student("stu004",23));
		System.out.println("--------原始顺序---------");
		for(Iterator<Student> it=list.iterator();it.hasNext();)
			System.out.println(it.next().toString());
		System.out.println("---------默认排列---------");
		Collections.sort(list);
		for(Iterator<Student> it=list.iterator();it.hasNext();)
			System.out.println(it.next().toString());
		System.out.println("---------降序排列-----");
		Comparator<Student> comp=Collections.reverseOrder();
		Collections.sort(list,comp);
		for(Iterator<Student> it=list.iterator();it.hasNext();)
			System.out.println(it.next().toString());
		System.out.println("---------名字排序----------");
		Collections.sort(list,new Comparator<Student>(){

			@Override
			public int compare(Student s1, Student s2) {
				// TODO Auto-generated method stub
				 return s1.getName().compareTo(s2.getName());
			}

		});
		for(Iterator<Student> it=list.iterator();it.hasNext();)
			System.out.println(it.next().toString());

	}

}
class Student implements Comparable<Student>{

	private String name;
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	private int age;
	public Student(String name,int age){
		this.name=name;
		this.age=age;
	}

	@Override
	public int compareTo(Student stu) {
		// TODO Auto-generated method stub
		if(this.age>stu.age)
			return 1;
		else if(this.age<stu.age)
			return -1;
		else
			return 0;
	}
	public String toString(){
		return name+‘_‘+age;
	}

}

输出:

--------原始顺序---------

stu001_21

stu003_29

stu002_25

stu004_23

---------默认排列---------

stu001_21

stu004_23

stu002_25

stu003_29

---------降序排列-----

stu003_29

stu002_25

stu004_23

stu001_21

---------名字排序----------

stu001_21

stu002_25

stu003_29

stu004_23

稀疏矩阵的三元组顺序表的C语言实现,布布扣,bubuko.com

时间: 2024-10-13 23:31:53

稀疏矩阵的三元组顺序表的C语言实现的相关文章

稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结

稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结 巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) 一:稀疏矩阵的三元组顺序表数据结构 typedef int ElemType; typedef struct { intx, y;  //该非零元素的行下标和列下标 ElemTypee; //该非零元素的值 } Triple; typedef struct { Tripledata[MAXSIZE]; //非零元素三元组顺序表 intmu, nu, t

稀疏矩阵的三元组顺序表存储结构表示及实现

#define MAX_SIZE 100 struct Triple { int i, j;//行下标,列下标 ElemType e;//非零元素值 }; struct TSMatrix { Triple data[MAX_SIZE + 1];//非零元三元组表,data[0]未用 int mu, nu, tu;//矩阵的行数,列数,非零元个数 }; int comp(int c1, int c2){//比较这个数c1和c2的大小关系 if (c1 < c2) return -1; if (c1

顺序表的C语言实现

一直在复习数学,想着要在六月底之前把数学三门四本书都过一遍,最近看到了线性代数了,好多学了都忘记了,慢慢来吧! 前段时间看的线性表了,才看了一点点,关于顺序表大致实现了下,后面抽看看看数据结构了,数学得全力复习了.准备暑假开始系统复习专业课,加油吧! 顺序表代码如下,简单实现了下,正好抓住这个机会复习了结构体,指针等知识.main()函数里写的比较乱,主要在于其他子函数里的实现 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #defi

【数据结构】之顺序表(Java语言描述)

之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中,为我们提供了专门的顺序表的数据结构API-- ArrayList . Java中的ArrayList的基本存储思路和C语言中的思路相似,即将所有元素存储在一个数组中,当数组中的元素个数达到某种标准时,就要扩容.由于顺序表中的其他操作在Java和C中的实现方式大同小异,因此,本文不再详细介绍这些操作

【顺序表】 c语言的顺序表

顺序表:一段地址连续的存储单元依次存储数据元素的线性结构. 静态存储的结构: #define MAX_SIZE 5 typedef int DataType; typedef struct SeqList { DataType array[MAX_SIZE]; size_t size; }SeqList; /////////////   顺序表的 增 删 查   ////////////////// void InitSeqList(SeqList* pSeq)  //初始化   { asser

【数据结构】实现顺序表(c语言)

头文件: #ifndef _SEQLIST_H #define _SEQLIST_H #include <stdio.h> #define INIT_SIZE 8 typedef struct SeqList { int *base; size_t size; size_t capacity; }SeqList; // 要实现的函数 void InitList(SeqList *list); int isfull(SeqList *list); int isempty(SeqList *lis

三元组顺序表表示的稀疏矩阵的转置和加法运算的实现----《数据结构》

#include<stdio.h> #include<malloc.h> #include<stdlib.h> #include<string.h> #define MAXSIZE 225 #define N 9 typedef struct{ int i,j; int e; }Triple; typedef struct{ Triple data[MAXSIZE+1]; int mu,nu,tu; }TSMatrix; int CreatSMatrix(T

矩阵压缩存储之三元组顺序表

形态: 实现: /***************************************** 稀疏矩阵的三元组顺序表存储表示 by Rowandjj 2014/5/3 ******************************************/ #include<IOSTREAM> using namespace std; #define MAXSIZE 12500//非零元个数的最大值 typedef int ElemType; typedef struct _DATA_

5-3-行逻辑链接的顺序表(稀疏矩阵)-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第5章  数组和广义表 - 行逻辑链接的顺序表(稀疏矩阵) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.Scanf.c        相关测试