【数据结构学习】线性表

数据结构之线性表学习总结 鉴于自己的数据结构知识较为薄弱,并且自己常常学完没几天又忘了,每次用起来都要去查阅,所以现在开个博客来记录自己在学数据结构过程中自己的一些学习总结,也可以加深自己的理解。 第一篇要总结的是线性表。 线性表:零个或多个相同特性的数据元素的有限序列。首先它是一个序列,元素之间是有顺序 的,第一个元素无前驱,最后一个元素无后继,其他的都有且只有一个前驱和后继。而所有元素按这种1对 阅读详情

程序要求:建立一个顺序表,用户通过输入个数和一组非递减顺序的数,即顺序表按照非递减顺序排列,对顺序表进行建立,删除指定位置的数,查找指定位置的数,插入一个数字功能。程序代码如下:

#include "stdio.h"
#include "stdlib.h"

#define listsize 100

typedef struct{
    int data[listsize];
    int length;
}Seqlist;


void main(){
    void createlist(Seqlist *l,int n);
    void printlist(Seqlist *l,int n);
    void locateElem(Seqlist *l,int n);
    void listinsert(Seqlist *l,int i,int n);
    void listdelete(Seqlist *l,int i,int n);
    int n;

    int i=0;
    Seqlist l;
    l.length=0;
   
    printf("请输入线性表长度:");
    scanf("%d",&n);
    createlist(&l,n);
    printlist(&l,n);
    locateElem(&l,n);
    listinsert(&l,i,n);
    listdelete(&l,i,n);
    printf("\n");
}

//新建顺序表

void createlist(Seqlist *l,int n)
{
    int i;
    printf("请输入顺序表元素:\n");
    for(i=0;i<n;i++)
    {
        scanf("%d",&l->data[i]);
        l->length=n;
    }
}

//输出顺序表

void printlist(Seqlist *l,int n)
{
    int i;
    printf("顺序表为:");
    for(i=0;i<n;i++)
    {
        printf("%d ",l->data[i]);
    }
}

//查找元素

void locateElem(Seqlist *l,int n)
{
    int i=1,*p;
    p=l->data;
    printf("\n请输入要查找的元素n:");
    scanf("%d",&n);
    while(i<=l->length&&(*p++!=n)) ++i;
    if(i<=l->length)
    printf("要查找的数的位置为:%d",i);
}

//插入元素

void listinsert(Seqlist *l,int i,int n)
{
    int *q,*p;
    printf("\n请输入要插入的数:");
    scanf("%d",&n);

    if(l->length==0)
    {
        l->data[0]=n;
        ++l->length;
       
    }
    q=&(l->data[0]);
    while((*q<=n)&&(q<=&(l->data[l->length-1])))
    {
        ++q;
    }
    ++l->length;
    for(p=&(l->data[l->length-1]);p>=q;--p)
    {
    *(p+1)=*p; 
    *p=n; 
    }

 printf("输出新表:\n");  
        for(i=0;i<l->length;i++)
     {
        printf("%d ",l->data[i]);
     }
}

//删除元素

void listdelete(Seqlist *l,int i,int n)
{
    int *p,*q;
    printf("\n请输入要删除的数的位置:");
    scanf("%d",&i);   
   
    if(i<1||i>l->length)
    printf("删除元素失败!");
   
    p=&l->data[i-1];
    n=*p;
    q=l->data+l->length-1;
    for(++p;p<=q;++p)
    {
         *(p-1)=*p;
         --l->length;   

    }
   
    for(i=0;i<l->length+1;i++)
    {
        printf("%d ",l->data[i]);
    }
}
数据结构——线性表学习总结1(顺序表) 前言:我是为了考研来学习的数据结构,作为计算机专业基础课,它是当值无愧的一块难啃的硬骨头,对于我这个跨专业的考生学起来非常的难受;前面发的C学习的博客是为了学习这里的铺垫,毕竟不熟悉结构体、指针、还有malloc()等函数简直就不是到那些代码写的啥。下面的总结笔记主要来自于小甲鱼老师的视频教程,我边看边暂停记笔记写代码,在博客里做一个归拢,当作一个回顾和复习(其实和预习差不多)。 一、线性表定义及... 阅读详情

相关推荐

顺序表的基本操作的实现

Page83页作业题: 1,利用顺序表的操作实现以下函数: (1)从顺序表中删除具有最小值的元素,并由函数返回被删除元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息,并退出运行。 (2)在顺序表的第i个位置之后插入一个数据元素x。若i不合理,则显示出错信息,并退出运行。 (3)从顺序表中删除具有给定值x的所有元素。 (4)在一个顺序表中,如果一个数据值重复出现,则留下第一个数据值,并删除其它所有重复的元素,使表中所有元素的值均不相同。 分析:定义操作,使用成员函数的操作实现(1)、(2)、(3)、(4)。

顺序表的基本操作

程序要求:建立一个顺序表,用户通过输入个数和一组非递减顺序的数,即顺序表按照非递减顺序排列,对顺序表进行建立,删除指定位置的数,查找指定位置的数,插入一个数字功能。程序代码如下: #include #include #define listsize 100 typedef struct{     int data[listsize];     int length;...

F_hawk189的博客 340

PID温控实验平台搭建(二)——PID进阶知识介绍及源码分享

最近,我突发奇想去翻阅了一些我本科期间所做的一些小项目,发现都挺有意思的!希望通过我的讲解文章可以帮助你们少走一些弯路!今天,我要分享的是一个PID温控实验平台的搭建,这是一个系列文章,手把手地教你学习和认识PID算法,了解这种算法在温度控制中的应用。由于我知识有限,如果出现一些错误,希望大家可以帮助我指出来,我们一起学习进步!!!

qq_35953617的博客 8049

顺序表

#include //˳Ðò±íµÄ¶¨Ò壺 #define ListSize 100 //±í¿Õ¼ä´óС¿É¸ù¾Ýʵ¼ÊÐèÒª¶ø¶¨£¬ÕâÀï¼ÙÉèΪ100 typedef int DataType; //DataType¿ÉÒÔÊÇÈκÎÏàÓ¦µÄÊý¾ÝÀàÐÍÈçint, float»òchar typedef struct { DataType dat

刘明智的专栏 717

html python mysql交互_干货!Python与MySQL数据库的交互实战

安装PyMySQL库如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接使用pip install pymysql;假如这种方式还是安装不上,就用如下链接找一个合适的安装包,进行安装,这个就不细说了。https://www.lfd.uci.edu/~gohlke/pythonlibs/使用Python连接MySQL数据库1)六个常用的连接参数参数...

weixin_31043555的博客 1561

Comsol固体力学仿真﹣﹣受均匀内压的厚壁球壳弹塑性分析(加载卸载全流程)

COMSOL固体力学及结构力学仿真较少,故而查询了有关资料,才建立了如下模型。图4 加载卸载全历程中的冯米塞斯应力变化。该有限元模型是通过扫掠而得的结构化网格。图2 加载卸载全历程中的塑型区域变化。图3 加载卸载全历程中的位移应力变化。图6 关键节点第一,第三主应力分布。图5 关键节点应力场与塑性区分布。《弹塑性力学》大作业,记录一下。图1 球体的有限元网格模型。

weixin_62236383的博客 1486

【C语言】超详细讲解顺序表的各种操作

数据结构在内存中的表示通常有两种形式,一种是顺序存储,另一种是链式存储。线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表的数据元素,我们把这种存储形式存储的线性表称为顺序表。1.顺序表的逻辑结构和物理结构是一致的。2.顺序表中任意一个数据元素都可以随机存取,所以顺序表是一种随机存取的存储结构。 定义MAXLEN为100,表示顺序表最大的存储空间 利用宏方便对顺序表的大小进行修改利用typedef将DataType定义成int类型的数据,如果顺序表存放的数据要修改成其他类型的,可以直接 利用

云泽野の编程日记 6655

xenomai内核解析--嵌入式实时linux概述

Linux系统作为一个GPOS(通用操作系统)发展至今已经非常成熟可靠了,并且由于遵循GPL协议,开放所有系统源代码,非常易于裁剪。更重要的是,与其他开源的GPOS或RTOS相比,Linux系统支持多种处理器、开发板,提供多种软件开发工具,同时Linux系统对网络和图形界面的支持非常出色。显然,选择Linux操作系统在产品的开发周期和成本控制方面都有巨大优势。 虽然Linux系统功能强大、实用性强...

wsg1100 3700

C数据结构-顺序表

顺序表 顺序表利用 一块连续的内存单元 依次存储数据元素 顺序表的定义: #define MAXLEN 10 //开辟的总的存储空间 typedef int DataType; //DataType相当于int的别名 typedef struct { DataType data[MAXLEN]; //存放顺序表的数据,表示最多可以存储10个元素 int length; //表示顺序表已使用的长度 }SeqList; 创建一个空的顺序表: //初始化顺序表 void InitList(Seq

qq_41151938的博客 561

stm32最小系统_完成一个最小FOC矢量控制系统所需的基本模块和功能配置

当我们读懂 FOC 矢量控制的基本原理之后,便迫不及待的想动手尝试,去实现一个矢量控制系统,让电机先转起来,有一个直观的感受。因此,我们需要设计实现一个矢量控制的最小系统,具备矢量控制的基本功能,满足电机矢量运行的基本条件。首先,看一下矢量控制的基本架构:矢量控制架构如上图所描述,矢量控制系统包括实时电流的采集、clarke 变换、park 变换、SVPWM 、实时角度的反馈和计算以及电流环和速...

weixin_39524048的博客 1784

H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5

H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示创造价值,乐哉分享!

m0_74823947的博客 3096

数据结构之顺序表.废

/*=============================================== * 文件名称:struct_para.c * 创 建 者: * 创建日期:2022年04月03日 * 描 述:struct结构体 * int b,*t; * *t.name <=> *b * (*t).name <=> 一个指针去接收一个结构体 * t->name <=> 一个指针指向一个结构体空间,与(*t).n.

BYTEDANCE的博客 148

【2026年华为秋招(AI)-2月4日-第一题(100分)- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要:本文包含20道选择题,涵盖机器学习、线性代数、Transformer架构、概率统计等多个领域。题目涉及正交矩阵性质、Transformer注意力机制、聚类距离度量、ReAct框架、Softmax函数、混淆矩阵计算、Flash-Attention优化、位置编码、期望计算、归一化方法、矩阵迭代法、矩阵秩、大模型架构、神经网络推理、泊松流性质、SVM核函数以及聚类算法等知识点。每道题均提供解析,帮助理解核心概念和解题思路。

m0_73659489的博客 125

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

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

Everybodynow的博客 909

Linux | Ubuntu18.04安装WIFI6 AX201驱动完整教程

本节介绍了如何在Ubuntu18下安装AX201驱动的教程。

九七的博客 8881

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数据结构学习笔记(二)线性表

本系列笔记基于 清华大学出版社的《数据结构:用面向对象方法与C++语言描述》第二版进行学习。定义:把线性表中所有的表项按照其逻辑顺序依次存储到从计算机存储中指定存储位置开始的一块连续存储空间中。特点:①表项的逻辑顺序和物理顺序一致,即第i个表项存储在第i个物理位置。②可以进行顺序访问,也可进行随机访问(即可以从第一个表项开始逐个访问,也可以按照表项的序号直接访问)。顺序表的静态存储100int n;}SeqList;顺序表的动态存储T* data;}SeqList;定义。

Lmz_0314的博客 529

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

线性表·数据结构的江湖修行手札2【数据结构学习笔记】

江湖味线性表学习笔记

melanie_fay的博客 502

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

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

土豆~的博客 289

线性表的创建,增加,插入,删除(代码)_数据结构学习记录(一)

//线性表的存储结构 #include<stdio.h> #include<iostream> #include<conio.h> #include<stdlib.h> using namespace std; #define LISTSIZE 100 //假设表容量100 typedef int DataType; typedef struct ...

我只知道的事 3702

数据结构-第二章线性表的学习

转载于:https://www.cnblogs.com/yi2105/p/10549540.html

weixin_34261739的博客 94

信管16数据结构:第二章线性表 翻转课堂课前学习任务

第2周   翻转课堂课前学习任务                               ——线性表   一、本章节目标 1、回顾线性表的逻辑结构; 2、掌握线性表的顺序存储和链式存储的思想; 3、线性表和链表的数据结构的构造; 4、对线性表和链表的基本操作时间复杂度分析; 5、针对具体问题线性数据的功能实现。     二、课前自主学习 1、看完书第二章节全部内容; 2

明哥的专栏 866

数据结构学习——线性表顺序存储结构

获取线性表的元素 #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 20//存储空间初始分配量 typedef int Status; typedef int ElemType; typedef struct { ElemType data[MAXSIZE];//数组存储数据元素,最大值为MAXSIZE i

weixin_43454032的博客 292

数据结构与算法学习笔记-线性表

声明:本博客仅为本人学习途中做的笔记 采自青岛大学王卓老师的视频教学 主要内容为算法思路,具体代码实现还需修改后才能运行,望各位看官多多包涵,您的点赞与评论是对我最大的肯定! # 1.线性表的定义和特点 线性表是具有相凤特性的数据元素的一个有限序列 (a1,a2,...ai−1,ai,ai+1,...,an) (a_1, a_2, ... a_i-_1, a_i,a_i+_1, ..., a_n) (a1​,a2​,...ai​−1​,ai​,ai​+1​,...,an​)\qquad\qquad\q.

qq_53548177的博客 751

数据结构 线性表 学习 2025/6/12 21点27分

元素之间具有顺序关系(除首尾元素外,每个元素有且仅有一个直接前驱和一个直接后继)线性表是数据结构的基础,理解它对学习更复杂的数据结构非常重要。存储线性表的数据元素,通过指针连接元素。逻辑上相邻的元素物理位置不一定相邻。:受限的线性表(只能在端点操作)逻辑上相邻的元素物理位置也相邻。:用数组实现的链表(游标实现)依次存储线性表中的数据元素。随机访问(通过下标直接访问):每个节点包含前驱和后继指针。插入/删除需要移动大量元素。插入/删除不需要移动元素。元素具有相同数据类型。

梦境虽美,却不长. 426

数据结构学习之——线性表

定义:线性表的顺序存储又称顺序表。它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。位序:第1个元素存储在线性表的起始位置,第i个元素的存储位置后面紧接着存储的是第i+1个元素,称i为元素aia_{i}ai​在线性表中的位序。因此,顺序表的特点是表中元素的逻辑顺序与其物理顺序相同。

会飞的鱼的博客 5449
上一篇: 【数据结构学习】有关B树
下一篇: Unable to locate package错误解决办法
Algorithm_goddness
博客等级 码龄10年 25粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Algorithm_goddness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值