首页 > 其他分享 >2022-2023-2 20221320 数据结构第一周学习总结

2022-2023-2 20221320 数据结构第一周学习总结

时间:2023-02-25 23:12:37浏览次数:40  
标签:存储 函数 double 元素 2022 2023 20221320 数据结构 数据

一、教材学习内容总结:

1.周一的课上复习了
冯·诺依曼模型:输入设备,输出设备(IO设备),存储器,运算器,控制器(CPU)。
计算机由硬件(裸机)和软件(系统软件与应用软件)组成(软件是程序、数据以及有关文档资料的集合,是(可运行的)思想和内容的数字化。思想:算法、规律、方法(程序)内容:图形、图像、数据、声音、文字等(数据))

程序:是使计算机完成某种任务的一组有序命令(指令语句)的集合。
程序设计语言发展的三个阶段:机器语言→汇编语言→高级语言。
语言翻译
翻译程序:是把甲种语言程序翻译为等价的乙种语言程序的程序。其中,甲种语言称为源语言。乙种语言称为目标语言。
汇编程序:若源语言是汇编语言,目标语言是机器语言,则该翻译程序被称为汇编程序。
编译程序:若源语言是高级语言,目标语言是汇编语言或机器语言,则该翻译程序被称为编译程序。
解释程序:是翻译程序的另一种形式,它对源程序的语句边解释边执行,不产生目标程序。
计算机求解问题的过程:(重点在分析和设计)

设计红路灯管理系统
信号灯问题的抽象——>着色问题,求解的方法:穷举法,贪心法。
2.周四的课上复习了
数据结构:研究数据的组织形式,包括数据的逻辑结构、存储结构以及在该数据结构上所施加的操作。
研究数据元素之间的客观联系(逻辑结构)
研究数据在计算机内部的存储方法(存储结构)
研究如何在数据的各种结构(逻辑的和物理的)上实施有效的操作或处理(算法)
数据:信息的载体,是描述客观事物的数、字符以及所有能输入到计算机中、被计算机程序识别和处理的符号的集合。(数值性数据、非数值性数据)
数据(data):客观事物的符号表示。
数据元素(data element):数据的基本单位,在程序中通常作为一个整体进行考虑和处理。
数据项(data item) :数据元素的某一属性。数据元素可以由若干数据项组成,数据项可以由若干更小的款项(组合项、原子项)组成。数据项又称域、字段。
数据对象(data object):性质相同的数据元素的集合。
数据结构(data structure):相互之间存在一种或多种特定关系的数据元素的集合。
定义:数据结构是一个二元组
B = <D, R>
其中,D是数据元素的有限集(即数据对象)。R是D上关系的有限集。
前后件关系(前驱与后继关系):数据元素之间的一个基本关系,但前后件关系所表示的实际意义是随具体对象的不同而不同。一般来说,数据元素之间的任何关系都可以用前后件关系来描述。数据的逻辑结构反映了数据元素之间的逻辑关系,即各数据元素之间的前后件关系。
数据结构是一个二元组
D是数据元素的有限集(即数据对象)。
R是D上关系的有限集。
为了反映D中各数据元素之间的前后件关系,一般用二元组来表示。
设a与b是D中的两个数据元素,则二元组<a,b>表示a是b的前件,b是a的后件。
数据节点:数据集合D中的每一个数据元素用中间标有元素值的方框表示(数据结点,结点)用一条有向线段从前件结点指向后件结点。

数据的逻辑结构:从数据的逻辑关系上描述数据,与数据的存储无关,与数据元素本身的具体形式、内容无关。数据的逻辑结构可以看作是从具体问题抽象出来的数据模型。

数据的存储结构:所要解决的基本问题是各种逻辑结构在计算机中的存储或者表示,主要包括结点的表示和关系的表示。(顺序存储(多用),链式存储(多用),散列(或哈希)存储,索引存储)

数据类型:指一个值的集合以及在这些值上定义的一组操作的总称。
抽象数据类型(Abstract Data Type, ADT):指抽象数据组织和与之相关的操作。每一个操作由它的输入和输出定义。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内的表示和实现无关。
抽象数据类型可以定义为:(D,R,P)D表示数据对象;R是D上的关系集;P是对D的基本操作集。

C没有为ADT提供专门支持,但可通过程序技术模拟
.h 文件定义数据表示(定义类型)和操作原型
.c 文件实现操作
使用.h文件中定义的类型的文件应包含语句#include “ **.h”
实例:构造一个

二、教材学习中的问题与解决过程

暂无

三、代码调试中的问题和解决过程

1.多项式函数值的计算(直接法语秦九韶算法)
原码:

#include <stdio.h>
#include <time.h>
#include<math.h>

clock_t start,stop;/*clock_t是clock()函数返回的变量类型*/
double duration;/*记录被测函数运行时间,以秒为单位*/
#define MAXN 10/*多项式的最大项数,即多项式阶数+1*/
#define MAXK 1e7/*被测函数最大重复调用次数*/

double f1(int n,double a[],double x)
{
    int i;
    double p=a[0];
    for(i=1;i<=n;i++)
        p+=(a[i-1]*pow(x,i));
    return p;
}

double f2(int n,double a[],double x)
{
    int i;
    double p=a[n];
    for(i=n;i>0;i--)
        p=a[i-1]+x*p;
    return p;
}

void run(double (*f)(int, double*,double),double a[],int case_n)
{/*此函数用于测试被测函数(*f)的运行时间,并且根据case_n输出相应的结果*/
/*case_n是输出的函数编号,1代表函数f1,2代表函数2*/
    int i;
/*不在测试范围内的准备工作写在clock()调用之前*/
    start=clock();/*开始计时*/
    for(i=0;i<MAXK;i++)/*重复调用函数以获得充分多的时间打点数*/
        (*f)(MAXN-1,a,1.1);/*被测函数放在这里*/
    stop=clock();/*停止计时*/

    duration=((double)(stop-start))/CLK_TCK/MAXK;/*计算运行时间*/
/*注意CLK_TCK是机器时钟每秒所走的时钟打点数*/
/*在某些IDE下也可能叫CLOCK_PER_SEC。*/
/*其他不在测试范围内的处理写在后面,例如输出duration的值*/
    printf("ticks%d=%f\n",case_n,(double)(stop-start));
    printf("duration%d=%6.2e\n",case_n,duration);
}
int main()
{
    int i;
    double a[MAXN];/*储存多项式的系数*/
/*为本题的多项式系数赋值。即a[i]=i*/
    for(i=0;i<MAXN;i++)
        a[i]=(double)i;
    run(f1,a,1);
    run(f2,a,2);
    return 0;
}

结果截图:

四、其他(思考、感悟)

五、学习进度条

博客量(新增/累计) 代码行数(新增/累计) 学习时间(新增/累计) 重要成长
第一周 1/28 100/3950 10/225 数据结构基本认识

标签:存储,函数,double,元素,2022,2023,20221320,数据结构,数据
From: https://www.cnblogs.com/feng-tairui/p/17155627.html

相关文章

  • 浙江理工大学2023acm队淘汰赛
    浙江理工大学2023淘汰赛部分题目的理解这里仅提供代码及思路,网站链接如下:链接>http://47.96.116.66/contest.php?cid=5372<难度梯度:ABCLDEFKIGH——/)/)有......
  • 2023年2月25日(软件工程日报)
    图像视图imageview在XML文件中,通过属性android:src设置图片资源正java代码中,调用setlmageResource方法设置图片的资源。    图像按钮ImageButton显示图片的图像......
  • 2023年2.25日 软工日报
    今天是周六,今天睡到九点才起床,然后写写了概率论,然后写写网络作业,下午写了写安卓,学不会阿,很多代码记不住,看一个博主直接开发记账本app,跟着打,开始是组件控件还有些理解,才看了......
  • 2023.2.25——软件工程日报
    所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,配置好了git,并且学会了如何将本地代码利用git上传到GitHub上。我了解到的知识点:Github首次上传代码测试-sodamate-......
  • [WC/CTS2023] 楼梯 题解
    题目链接简要题意有一块楼梯,这里指的楼梯是倒着的,正过来看上一层宽度一定小于等于这一层宽度,并且由格子组成,你需要对其进行增删和恢复某一历史版本的操作,并回答这块楼梯......
  • 2023年2月25号
    昨天已经完成了一张表,今天准备开始多个表连接与修改等。今天先看看之前的代码,今天先把表格完成,希望下一个星期周末就能完成多个表的任务,相关题目在上学期就已经发布了,选择......
  • 2023.2.24AcWing蓝桥杯集训·每日一题
    今日复习的知识点为递归。递归对于笔者而言是个比较难以理解的知识点,后续会多进行递归题目的练习。AcWing1497.树的遍历题目描述一个二叉树,树中每个节点的权值互不相同......
  • 2023.2.25每日总结
    今天学习了控件toolbarandroid:layout_width="match_parent"android:layout__height="?attr/actionBarSize"android:background="#fff00app:navigationlcon="@dra......
  • 2023.2.25周六每日总结
    今天根据b站得javaweb教程学习了两个小时,成功理解了数据库的链接原理,以及connection的使用方法,对不同版本的mysql之间连接的区别有了进一步的理解所以利用jdbc在java中......
  • 2023.2.25AcWing蓝桥杯集训·每日一题
    今日复习的知识点为并查集。AcWing1249.亲戚题目描述或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整......