线性表学习指导

[附源码]计算机毕业设计JAVA网上花店系统 附源码]计算机毕业设计JAVA网上花店系统项目运行环境配置:(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat。 阅读详情
 

程序设计只能靠自己上机实践、一题题的消化,没有其它方法可以取代。行动吧!做一个能学习计算机的人。

本文所指的书《C程序设计》,谭浩强,第四版、《数据结构》耿国华。

OJ网址http://218.5.241.13:8060/oj,内有分基础题basic区http://218.5.241.13:8060/oj/base/index.jsp

和普通区http://218.5.241.13:8060/oj/index.jsp,s开头是basic区,su开头的是普通区。

一、    线性表主要的基础数据结构是:数组、函数、指针、自定义结构

一维数组:

★例S1214、求n个学生的平均年龄。

.int a[100];// 用a[0]、a[1]、……、a[99]表示100个学生的年龄,

.int sum, average;//年龄总和,平均年龄

//求和

.sum = 0;

.for(i=0;i<n;i )

      .sum = sum a[i];

★完成S1062、S1137。

二维数组:

.int  A[2][3];//表示下表中的6个变量.

A[0][0]

A[0][1]

A[0][2]

A[1][0]

A[1][1]

A[1][2]

 

★例、s1065矩阵和

.int a[10][20],b[10][20];//分别表示要加的两个矩阵.

//对两个p*q的矩阵,输出它们的和

  1. for(i=0;i<p;i )  
  2.   
  3.            {  
  4.   
  5.               for(j=0;j<q;j )  
  6.   
  7.                  printf("%d ",a[i][j] b[i][j]);  
  8.   
  9.               printf("\n");  
  10.   
  11.            }  


 


★选练:S1042、S1066、S1074

函数:P176

函数的操作:声明、定义、引用

★S1110 求方差。

 

  1.  #include<stdio.h>   
  2.   
  3. double Avage(double a[100],int n)//求数组中n个数的平均数   
  4.   
  5. {  
  6.   
  7.     double avage = 0;  
  8.   
  9.     int i;  
  10.   
  11.     for (i=0;i<n;i )  
  12.   
  13.         avage  = a[i];  
  14.   
  15.     avage /=n;  
  16.   
  17.     return avage;  
  18.   
  19. }   
  20.   
  21. double ss(double tt,double b[100],int n)//求方差,tt是平均数   
  22.   
  23. {  
  24.   
  25.    int i;  
  26.   
  27.    double sum=0;  
  28.   
  29.    for(i=0;i<n;i )  
  30.   
  31.      sum =(tt-b[i])*(tt-b[i]);  
  32.   
  33.    sum/=n;  
  34.   
  35.    return sum;  
  36.   
  37. }  
  38.   
  39. void main()  
  40.   
  41. {  
  42.   
  43.    int t,n,i,j;  
  44.   
  45.    double data[100],ttt,s;  
  46.   
  47.    while(scanf("%d",&t)!=EOF)  
  48.   
  49.    {  
  50.   
  51.      for(i=0;i<t;i )  
  52.   
  53.      {  
  54.   
  55.         scanf("%d",&n);  
  56.   
  57.         for(j=0;j<n;j )  
  58.   
  59.         {  
  60.   
  61.           scanf("%lf",&data[j]);  
  62.   
  63.         }  
  64.   
  65.         ttt=Avage(data,n);//调用函数求平均数,   
  66.   
  67.         s=ss(ttt,data,n);//调用函数求方差   
  68.   
  69.         printf("s^2=%.2lf\n",s);  
  70.   
  71.      }  
  72.   
  73.    }  
  74.   
  75. }  



★    每个问题都可以独立成函数,再加以调用。大家可以任选几道(至少3道)加以训练。

 

指针:(这部分的内容较为抽象,要多练、多思考、动真的用指针写代码)

指针是变量的地址

★    例、比较a、b两数的大小,看P225。复制下列代码到VC,并观察。

  1. #include <stdio.h>   
  2.   
  3. int main(){  
  4.   
  5.       int *p1,*p2,*p,a,b;  
  6.   
  7.       scanf("%d%d",&a,&b);  
  8.   
  9.       p1 = &a;  
  10.   
  11.       p2 = &b;  
  12.   
  13.       if(a<b){  
  14.   
  15.            p = p1; p1 = p2; p2 = p;  
  16.   
  17.       }  
  18.   
  19.       printf("max=%d, min=%d\n",*p1,*p2);  
  20.   
  21.       return 0;  
  22.   
  23. }  


 

★    用指针完成S1004、S1010

 

指针作为函数的参数,P226

给你下列函数,重新完成S1004、S1010

  1. void swap(int *p1, int *p2){  
  2.   
  3.    int temp;  
  4.   
  5.    temp = *p1;  
  6.   
  7.    *p = *p2;  
  8.   
  9.    *p2 = temp;  
  10.   
  11. }  


或:

  1. void swap(int *p1, int *p2){  
  2.   
  3.       int *p;  
  4.   
  5.       p = p1;  
  6.   
  7.       p = p2;  
  8.   
  9.       p2 = p;  
  10.   
  11. }  


 

指针引用数组元素,P233~235

★例S1214、求n个学生的平均年龄。

.int a[100],*P;// 用a[0]、a[1]、……、a[99]表示100个学生的年龄,

.int sum, average;//年龄总和,平均年龄

//求和

.p = a;//

.sum = 0;

.for(p=a;p<(a n);p )

      .sum = sum *p;

★S1062,用指针方法排序.P244.

 

指向函数的指针P267

★用指针访问函数的方法重做上题,S1190

 

指针的动态内存分配,P287例8.30

例如生成一个int类型的指针变量

.int *p;

.*p = (int *)malloc(sizeof(int));

要加头文件stdlib.h或malloc.h

★求n个学生的平均年龄,只能用指针。

 

自定义的结构(此内容是学线性表的关键):

主要操作:定义结构、声明结构变量、使用。

把整体作为一个数据,就是自定义的结构

如平面上的点(x,y),定义为

.struct point{

      .int x,y;

};

.struct point p1,*p2;//定义两个点,p2是指针变量

.p1.x = 3 ;//对点p1中的x赋值

.p2->x = 3 ;// 对点p2中的x赋值

★s1105、s1106、S1136、自选题。

 

二、    线性表

结构定义:含有数据元素和表长的自定义结构。

线性表的主要操作有:建表、求表长、输出、查询、插入、删除、合并等。

学法:先学会定义线性表所使用的结构,然后去实现一个个操作。

★S1178、S1179、S1180、S1181、S1182、S1194、S1205、S1206、S1207、S1208、S1209……

 

三、    链表

结构定义:含有数据元素和表长的自定义结构。

链表的主要操作有:建表、输出、查询、插入、删除、合并等。

★可用上面的习题练,双链表用s1213

学法:先学会定义链表所使用的结构,然后去实现一个个操作。

 

 

 

四、   考试样例

考试要求:本次考试内容为课本的1~3章;考试成绩占整个学期的30%;考试在OJ平台上开卷进行(只能带纸质材料);考试时用户账号与IP地址绑定(即一机只能有一号,一号只能在一机上使用);考试时间约3个小时左右;考试的题量是4~5题(算法、顺序表、线性表、应用等);出题的方式见10网工1班的期末考(在OJ的contest处

http://218.5.241.13:8060/oj/contest/showContest.jsp?id=64);不出与OJ完全一致的题(会改造);考试的卷面(代码格式)占5分;题型如下:

1、(算法题)设计一算法求a、b最大公约数(a、b<1000000000),要求算法时间复杂度小于O(n)。参考Smu1001。

2、(算法题)设计一算法找出1~n(n<10000000000)所有素数,要求算法时间复杂度小于O(n^2)。

3、(算法题)求整数1—n(n<1000000000) 的所有偶数的和,要求算法的时间复杂度O(1) 。

4、顺序表(见OJ上的习题)。

5、链表(见OJ上的习题)。

6、线性表应用,如多项式的合并、括号的匹配。Smu1058、Smu1098

7、线性表与算法的综合应用,如《数据结构》P65例1。

 

 

附代码风格:

}要单独一行;

{后不跟代码;

{}中的句首与}对齐;

赋值语句的=两边都要有一空格;

一行有多句,句间要有空格;

要有缩进,缩进的长度以Tab键产生为准;建议把代码全部选中,用Alt F8自动调整。

每个函数块下或一个大的内容块下要加一行空行。

【100%通过率】华为od机试C卷【出差 / 员工派遣】Java&Go 实现 某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则: 阅读详情

相关推荐

混合编程实战:C#集成C++ PCL点云处理库,打造跨语言动态链接库

本文详细介绍了C#与C++混合编程实战,重点讲解如何通过动态链接库(DLL)集成C++ PCL点云处理库,实现跨语言协作。内容涵盖环境配置、PCL功能封装、C#调用DLL的完整方案,以及性能优化和错误处理等进阶技巧,帮助开发者高效处理大规模点云数据,提升工业软件开发效率。

weixin_42620913的博客 381

学会线性表,一篇就够了

线性表是最常用最典型的线性结构。 简易目录: 线性表: 逻辑特征 线性表的类型定义 存储结构 顺序存储表示 元素存储位置的计算 顺序表的基本操作实现 顺序表各算法时间复杂度的计算 C++中的参数传递 链式存储表示 ...

l218623的博客 4210

NX二次开发编译时dll自动数字签名及拷贝

在UG5.0开始,所有基于UG二次开发的DLL都要“签名”后才能被客户端上正版的NX调用。

菜鸟爱飞不飞的博客 2683

学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(线性表:顺序存储结构)

前面我们了解了什么是数据结构,现在我们正式开始数据结构的学习。古人说,工欲善其事,必先利其器。想要用C语言实现数据据结构,必须先准备好集成开发环境。在这里我给大家推荐以下几款:微软的Visual Studio Code(下面简称vs code),Jet Brains的Clion,以及微软的Dev C++。其中vs code需要大量自己手动配置的步骤,可能比较麻烦,但是它的界面比较美观。Dev C+...

weixin_45264145的博客 785

逆变器技术解析:DDSRF双解耦在正负序分离中的关键作用

本文深入解析了DDSRF双解耦技术在逆变器正负序分离中的关键作用。通过建立正反旋转坐标系并利用交叉反馈解耦网络,DDSRF能快速、精准地分离电网电压中的正负序分量,从而显著提升锁相环在电网不平衡条件下的精度与系统稳定性,是现代高性能并网逆变器的核心算法之一。

m3n5b7v8c9x的博客 409

MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

1. 概述 MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC)。器件带有冷端补偿检测和修正、数字控制器、SPI兼容接口,以及相关的控制逻辑,在温度控制器、过程控制或监测系统中设计用于配合外部微控制器(μC)工作。提供多个版本的器件,每个版本针对特定的热电偶类型(K、J、N、T或E型)进行优化和调整。热电偶类型以器件型号后缀表示(例如MAX31855K)。 器件输出14位...

睿思派克 1万+

学习线性表,高深又烧脑?莫怕,手把手教你终结烦恼!(栈:顺序栈)

学习完线性表的有关内容,相信大家对线性表(无论是顺序表还是链表)已经有了非常清楚的认识,包括它的结构,功能,以及基础操作,甚至是详细的代码。这些东西牢记于心之后,我们就不能再满足当前的所学了。今天我们一起来学习一下一种特殊的线性表——栈。为什么说它是线性表呢?因为它的结构以及基本操作和线性表大抵类似。为什么说它特殊呢?还是因为它的结构以及基本操作和线性表大抵类似(故意绕一个弯子,手动滑稽)。类似和...

weixin_45264145的博客 214

Vienna整流器双PI闭环仿真:从SVPWM调制到中点电位平衡的实践解析

本文深入解析Vienna整流器双PI闭环仿真技术,涵盖SVPWM调制和中点电位平衡的实践细节。通过详细的MATLAB/Simulink仿真搭建流程和常见问题排查方法,帮助工程师掌握高效整流器控制策略,提升系统稳定性和动态响应性能。

weixin_29168153的博客 326

线性表的学习总结一

作为一名通工转cs的coder,这学期中终于开始学习数据结构,在此做一些学习总结,以下是实现的一些功能: 建立链表 求链表长度 打印数据 按序号查找 按值查找 单链表的插入,按序号插入 删除链表第i个元素 倒置链表 单链表中删除重复节点,排序思想,双重循环进行比较 冒泡排序 定义结构体 struct node { int num; struct node *next; }; t...

yang8930的博客 2029

WPS和Excel通用!省市区四级联动下拉菜单保姆级教程(附最新行政区划数据包)

本文详细介绍了在WPS和Excel中实现省市区四级联动下拉菜单的完整教程,包含2024年最新行政区划数据的获取与整理方法。通过名称管理器和INDIRECT函数的组合,以及WPS的特色功能,帮助用户高效准确地录入四级行政区划信息,提升数据录入效率并减少错误。

s1t2u3的博客 611

哨兵1号回波数据(L0级)提取与SAR成像(全网首发)

本文先展示提取出的回波结果,然后使用RD算法进行成像,展示成像结果,最后附上哨兵1号回波提取的MATLAB代码。

3795

线性表学习记录

关于线性表我在这里就不做过多的坠诉,作为一个新手小白在这里分享记录我的学习过程。由于不太熟悉就先从理解跟着老师的代码走吧! 老师的代码 #include <stdio.h> #include <malloc.h> #define LIST_MAX_LENGTH 10 /** *Linear list of integers.The key is date */ typedef struct SequentialList{ int actualLength;

m0_61641152的博客 127

写给开发人员的实用密码学 - Hash算法

说到Hash(哈希),开发人员应该不陌生,比如Hash表是一种非常常用的数据结构,通过Hash表能够根据键值快速找到数据。哈希函数将文本(或其他数据)映射为整数,从而能够提高检索效率。密...

云水木石 1503

线性表的学习总结

四,自我学习总结:线性表是数据结构中最基本的一种结构,它由同类型的数据元素按照线性顺序排列而成。通过跟随老师的脚步抄写了老师顺序表单链表、静态链表、多项式加法的代码,通过抄写代码和老师对代码的讲解,对线性表的操作有一定的了解包括插入、删除、查找、遍历等等。并且对线性表的学习十分重要如栈和队列等数据结构都是基于线性表实现的,只有深入理解线性表的特性和操作方法,才能更好地理解这些数据结构。同时通过抄写闵帆老师的代码,提升了自己打代码的速度也加强了自己对代码规范的重视。顺序表的优点:存取的速度快。

nxpvxxgj的博客 454

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

线性表学习归纳总结一

线性表学习资料:线性表 学习掌握知识点: 顺序存储 链式存储 循环链表 双链表 线性表学习总结文档下载地址:数据结构线性表学习笔记总结

蜗牛漫步。。。我要一步一步往上爬。。。 568

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

记录线性表的学习

学习c语言数据结构的经历记录

2501_90988885的博客 220

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

《数据结构》学习笔记:线性表

看完线性表相关网课,做了对应习题,错的一塌糊涂,还是要多做题,多巩固,小羊继续加油吧!

m0_71844907的博客 209

数据结构学习笔记1——线性表的概念

数据结构学习笔记1——线性表的概念 1. 线性表是一个有限序列 2. 邻接关系是“1对1”的 3. 线性表的抽象数据类型

qq_45830912的博客 484

关于线性表的学习总结

定义:具有相同数据类型的n个数据元素的有限序列。 顺序表

wind的博客 2282

特殊线性表学习笔记

今天继续数据结构——特殊线性表。 栈,队列,串。 都是线性表的特殊实现,存储结构分为顺序存储和链表存储。区别是不同的操作要求,插入元素和删除元素的要求有所不同。 但是,只要掌握了链表的正确使用,这些特殊实现也都可以理解。需要注意的是,提前想清楚操作需要的指针,以及每一步实现的步骤和先后顺序。 最后,两个注意点: 1. 摆脱直觉。这是书上写的,不要那么肯定自己的第一感觉和判断,要通过缜密的

maomimi11的专栏 435

数据结构学习记录:第二章:线性表

线性表,简单来说就是一些数据元素的有限序列。而最简单的线性表,其实就可以当作 数组 来看,但是毕竟它只能一个一个存储同类型的数据。那么就需要另一种东西来存储多种数据而且能够可以实现顺序表示,你想到c语言里面的什么了嘛?。。。。。。。。。就是结构体哒!!!而结构体将会贯穿你学习数据结构的整个过程,一定要认真记住!有了这个前提后,我还要再提一句,就是一翻开线性表这一章首页就能看到的这个:有没有一种熟悉的感觉?没错,这些内容还是不能用!和上面的原因一样,需要你自己手敲来实现这些函数。

Everybodynow的博客 909

2.线性表——数据结构学习

2.线性表——数据结构学习

土豆~的博客 289

线性表学习要点

概述 线性表是一种最基本的数据结构,它不仅有着广泛的应用,而且也是其他数据结构的基础,同时,单链表是贯穿整个课程的基本技术。本章虽然讨论的是线性表,但涉及的许多问题都带有一定的普遍性。因此,本章是本课程的重点和核心,也是其他后续章节的重要基础。本章知识点的组织结构如下图所示。 重点/难点/要点 本章重点是: 顺序存储结构和链接存储结构的基本思想; 顺序表和单链表的基本算法; 顺序表和单链表基本操作的时间性能; 顺序表和链表之间的比较。 本章难点是: 线性表的抽象数据类型定义; 基于单链表的算法设计,

老毛的博客 2997

线性表的学习

开发工具与关键技术: 作者:#33 撰写时间:撰写时间:2020年05月08日 线性表的学习 线性表的概念: 线性表是一种简单的线性结构,特点是在非空的有限集合中,且第一个元素没有直接前驱元素,...

weixin_44484621的博客 390
上一篇: 2011.9.15 10网工2班 做题统计
下一篇: 三角形的面积
smuhm
博客等级 码龄15年 2粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值