seqlist c实现

顺序表,其实很多地方同数组很有相似,可以说数组也是一种顺序表。

对顺序表的基本操作有,初始化,插入元素,删除元素,访问表,元素定位,制空表,删除顺序表。

发一段功能集成代码。

--------------------------------    end      -----------------------------------

函数的源代码如下:
---------------------------------------------------------------------
-------/* 输入函数:void creat(STUDINFO stud[],int Num);*/-----------
---------------------------------------------------------------------
void creat(STUDINFO stud[],int Num)
{
    int i;
    for(i=0;i<Num;i++)
    {
        scanf("%d",&stud[i].number);
        scanf("%s",stud[i].name);
        scanf("%d%d%d",&stud[i].chinese,&stud[i].math,&stud[i].Physics);
        stud[i].totalScore=stud[i].chinese+stud[i].math+stud[i].Physics;//求总分
    }
}
        ------------------------------------------------------------------------
-------/*排名次的函数void sort(STUDINFO stud[],int n);*/----------------
------------------------------------------------------------------------
    void sort(STUDINFO stud[],int n)
{
    int i,j,t=1;    //定义变量t为名次,初始值为1,在之后的比较自加
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++) //    两重循环,使所有数据元素两两比较
        {
        if(stud[i].totalScore < stud[j].totalScore) //遍历整个数据对象,如果找到总分比该数据元素的总分大,排名+1
        t++;
        }
    
        stud[i].order=t;
        t=1;
    }
        
}
------------------------------------------------------------------------
-------/*输出的函数void disp(STUDINFO stud[],int n);*/-----------------
------------------------------------------------------------------------
void disp(STUDINFO stud[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%d %-20s %d %d %d %d %3d\n",stud[i].number,stud[i].name,stud[i].chinese,stud[i].math,stud[i].Physics,stud[i].totalScore,stud[i].order);
    }
}

 1 #include<stdio.h>
 2
 3 #define MaxNum 20
 4
 5 typedef struct studInfo{
 6 int number;//学号
 7 char name[20];//姓名
 8 int chinese; //语文
 9 int math;//数学
10 int Physics;//物理
11 int totalScore;//总分
12 int order;//名次
13 } STUDINFO;
14 void creat(STUDINFO stud[],int Num);
15 void sort(STUDINFO stud[],int n);
16 void disp(STUDINFO stud[],int n);
17 int main()
18 {
19     int Num;    //实际人数
20     STUDINFO  stud[MaxNum];
21     int i;
22     printf("请输入学生人数(要小于等于%d)\n",MaxNum);
23     scanf("%d",&Num);
24     creat(stud,Num);
25     sort(stud,Num);
26     disp(stud,Num);
27     getchar();getchar();getchar();getchar();getchar();getchar();
28     return 0;
29 }
30 void creat(STUDINFO stud[],int Num)
31 {
32     int i;
33     for(i=0;i<Num;i++)
34     {
35         scanf("%d",&stud[i].number);
36         scanf("%s",stud[i].name);
37         scanf("%d%d%d",&stud[i].chinese,&stud[i].math,&stud[i].Physics);
38         stud[i].totalScore=stud[i].chinese+stud[i].math+stud[i].Physics;
39     }
40 }
41 void sort(STUDINFO stud[],int n)
42 {
43     int i,j,t=1;
44     for(i=0;i<n;i++)
45     {
46         for(j=0;j<n;j++)
47         {
48         if(stud[i].totalScore < stud[j].totalScore)
49         t++;
50         }
51
52         stud[i].order=t;
53         t=1;
54     }
55
56 }
57 void disp(STUDINFO stud[],int n)
58 {
59     int i;
60     for(i=0;i<n;i++)
61     {
62         printf("%d %-20s %d %d %d %d %3d\n",stud[i].number,stud[i].name,stud[i].chinese,stud[i].math,stud[i].Physics,stud[i].totalScore,stud[i].order);
63     }
64 }
时间: 2024-08-05 04:34:06

seqlist c实现的相关文章

SeqList.

#pragma once #define __SEQ_LIST__ #ifdef __SEQ_LIST__ #include <stdio.h> #include <assert.h> #include <string.h> #define MAX_SIZE 100 typedef int DataType; typedef struct SeqList { DataType array[MAX_SIZE]; size_t size; }SeqList; //typed

顺序表(SeqList)

---恢复内容开始--- 数据结构在上周结课,接下来就是为期几周的上机实验,说是实验课我感觉还不如不上.几乎每个人都是按着老师的要求把书上的代码打一遍,变都不变.一遍以后连自己打的什么都不知道. 与其说是实验课,我感觉不如叫它打字练习课. 老师做的并没错,错的是学生对于这节课的态度,老师已经把该讲的讲过了,而上机就是学生们自己领悟的过程,对于代码不能打一遍就是一遍过去了.要在打的过程中了解你所打的每一句 代码是干什么的.在函数中起到的是什么作用,而这个函数在整个程序中起到的又是什么作用.所以我写

数据结构C#版笔记--顺序表(SeqList)

线性结构(Linear Stucture)是数据结构(Data Structure)中最基本的结构,其特征用图形表示如下: 即:每个元素前面有且只有一个元素(称为"前驱"),同样后面有且只有一个元素(称为"后继")--注:起始元素的前驱认为是空,末尾元素的后继认为也是空,这样在概念上就不冲突了. 线性表(List)是线性结构的一种典型实现,它又可以分为:顺序表(SeqList)和链表(LinkList)二大类. 顺序表(SeqList)的基本特征为:元素在内部存储时

【数据结构】顺序表seqlist

#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct seqlistNode { int date; }seqlistNode; typedef struct SEQLIST { unsigned int lengh; //长度 unsigned int count; //已存元素长度 seqlistNode * date; //数据域 }seqlist; seqlist *

数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树

[本文谢绝转载,原文来自http://990487026.blog.51cto.com] 树 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树 二叉树的创建,关系建立 二叉树的创建,关系建立2 三叉链表法 双亲链表: 二叉树的遍历 遍历的分析PPT 计算二叉树中叶子节点的数目:使用全局变量计数器 计算二叉树中叶子节点的数目:不使用全局变量计数器 无论是先序遍历,中序遍历,后序遍历,求叶子的数字都不变;因为本质都是一样的,任何一个节点都会遍历3趟 求二叉树的高度 二叉树的拷

排序算法大荟萃——冒泡排序算法

1.基本思想:将无序数组R[1...n]垂直排列,从下往上扫描数组R,对比相邻的两个元素,如果上面的元素值小于下面的值,则调整这两个相邻元素的位置,然后继续向上扫描,直到排好序为止. 2.排序过程: (1)初始化:读取无序数组R[1...n] (2)第一趟扫描:从数组R底部开始向上扫描,依次比较相邻的两个元素,若发现数值较小的在上面,则交换两个元素的位置.即依次比较(R[n].R[n-1]).(R[n-1].R[n-2]).....(R[2].R[1]),对于每对元素(R[j].R[j+1]),

线性表---顺序表

线性结构的特点是:在非空的有限集合中,只有唯一的第一个元素和唯一的最后一个元素.第一个元素没有直接前驱元素,最后一个没有直接的后继元素.其它元素都有唯一的前驱元素和唯一的后继元素. 线性表是一种最简单的线性结构.线性表可以用顺序存储结构和链式存储结构存储,可以在线性表的任意位置进行插入和输出操作. 要想将线性表在计算机上实现,必须把其逻辑结构转化为计算机可识别的存储结构.线性表的存储结构主要有两种:顺序存储结构和链式存储结构. 线性表的顺序表示与实现 线性表的顺序存储结构 线性表的顺序存储结构指

类型萃取

类型萃取是实现不同类型数据面对同一函数实现不同的操作,它与类封装的区别是:并不用知道所调用的对象是什么类型,类型萃取是编译后知道类型,先实现:而类的封装则是先定义类型,后实现方法. 类型分为基本类型(POD),和自定义类型. 在这里用模板的特化实现其编程思想: 以memcpy为例,当拷贝的是基本类型(POD)时,只用拷贝所传递指针上的数据,如果是string类型,则需要在堆上开辟空间,所传递的指针如果被直接复制,则有可能(vs下的string类型的实现原理是若字符串不长则以数组保存,若字符串过长

模板实现顺序表

类模板的成员函数: 类模板的成员函数本身是一个普通函数.但是,类模板的每个实例都有其自己版本的成员函数.因此,类模板的成员函数具有和模板相同的模板参数.因此,在=定义在类模板之外的成员函数就必须以template开始,后跟类模板参数列表. 类模板中的友元函数: 类模板中的友元函数,应该在类中定义.若只在类中声明,在类外定义,则在链接时会出现错误. 类模板实现顺序表: "SeqList.h" //冒泡法 "test.cpp"