首页 > 其他分享 >数据结构——顺序表

数据结构——顺序表

时间:2024-04-05 13:58:56浏览次数:15  
标签:typedef 顺序 int Elemtype length Sqlist 数据结构 data

一、线性表的顺序储存(连续)表示

顺序存储的定义:逻辑上相邻的数据元素存储在物理上相邻的存储单位中存储结构。

二、线性表的顺序表示和实现

        

1、线性表存储空间分配

#define List_size 100	//存储空间初始分配量
typedef int Elemtype;

//	静态分配
typedef struct {
	Elemtype data[List_size];
	int length;		//当前长度
}SL;

//动态分配
typedef struct {
	Elemtype* data;
	int length;
}SqL;
表中的内容ab

c

……
数组的下标012……

(头文件)

#pragma once
#include<iostream>
#include<malloc.h>
using namespace std;
# define Maxsize 100
typedef int Elemtype;
typedef int status;
typedef struct {
	Elemtype data[Maxsize];
	int length;
}Sqlist;
//初始化 
Sqlist* Init_sql() {
	Sqlist* L;
	L = (Sqlist*)malloc(sizeof(Sqlist));
	if (L->data != NULL) {
		L->length =0;
		cout << "ok";
	}
	return L;
}
//创建顺序表函数 
void Creatlist(Sqlist *L,int n,Elemtype num){
	if(n<0||n>Maxsize) {
		cout<<"fail";
	}
	L->data[n]=num;
	L->length++;
}
//清空线性表
void Destroylist(Sqlist*L) {
	L->length = 0;
}
//插入元素
void Getelem(Sqlist* L, int i, Elemtype e) {
	int j;
	if (L->length<1 || i>L->length + 1) {
		cout << "i不合法";
	}
	if (L->length >= Maxsize) {
		cout << "错误";
	}
	for (j = L->length ; j >i-1; j--) {
		L->data[j+1] = L->data[j];
		L->data[i - 1] = e;
		L->length++;
		cout << "ok";
	}
}
//求线性表L的长度
int Getlength(Sqlist *L) {
	return L->length;
} 
//查找元素
int Locatelem(Sqlist*L,Elemtype e) {
	for(int i=0;i<L->length;i++){
		if(e==L->data[i])
		return i+1;
	}
}

#include "FileName.h"
int main() {
	Sqlist *L=Init_sql();
	/*
	for(int i=0;i<5;i++){
		cin>>L->data[i];
	}*/
//	int sum=Getlength(L);
	cout<<'\n';
	Creatlist(L,1,1);
	Creatlist(L,2,8);
	Getelem(L, 1, 4);
	Getelem(L, 3, 5);
	Getelem(L, 4, 6);
	for(int i=0;i<L->length;i++){
		cout<<L->data[i];
		cout<<'\n';
	}
	int sum=Getlength(L);
	cout<<sum;
	return 0;
}

这是我看网课后整理的,感觉不是特别好,其中遇到了许多问题,比如系统找不到该文件……,我最高兴的是最后运行成功了。我现在还是小白,感谢大家支持!!

标签:typedef,顺序,int,Elemtype,length,Sqlist,数据结构,data
From: https://blog.csdn.net/2301_79253162/article/details/137285607

相关文章

  • C语言数据结构专题--顺序表(1基础)
    前言我们在对C语言有一定的了解之后,我们就可以开始数据结构的学习了,数据结构多用指针、结构体、动态内存开辟等知识,若对这些知识还不太了解的朋友,就需要加深其理解了,那么废话不多说,我们正式开始本节的学习什么是数据结构数据结构是由"数据"和"结构"两个词相组合得到的......
  • 什么是数据类型,什么是数据结构。
    数据类型,是人对数据的分类。人用这个信息,人自己或者让编译器做一种运动,将一种形式的数据转换成另一种形式的数据。数据结构,是人认为的数据之间的关系。数据类型是程序设计语言或者编译原理的概念。只讨论数据结构,可以不使用数据类型这个概念,可以不用高级程序设计语言,可以直接用......
  • (Java)数据结构——图(第三节)BFS的实现
    前言本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。广度优先搜索的原理好了,还是这张图,不过是广度优先搜索不难看出,就是“一层一层”搜这次咱从A开始,因为如果从B开始的话,只需要一次,搜索过程就是B直接搜完,入队ACDE,isVistied全部ture,结束......
  • 驱动对象和设备对象数据结构
    驱动对象:每个驱动程序都会有唯一的驱动对象与之对应,并且这个驱动对象是在驱动加载时被内核中的对象管理程序所创建的。驱动对象用DRIVER_OBJECT数据结构表示,它作为驱动的一个实例被内核中的I/O管理器负责加载,并且内核对一个驱动只加载一个实例。驱动程序需要在DriverEntry中......
  • React 函数式组件的执行顺序
    https://github.com/zjy4fun/react-fc-order importReact,{useEffect,useState}from'react'import'./App.css'functionApp(){const[count,setCount]=useState(0)constdoubleCount=count*2constaddCount=()=>{......
  • 数据结构——从入门到飞升——两个有序链表的交集
    题目:已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有......
  • 操作系统综合题之“短进程优先调度算法(Shortest-Process-First,SPF)和非抢占式优先权调
    一、问题:1.当系统采用短进程优先调度算法时,试写出进程的执行顺序,并计算各个进程的周转时间以及平均周转时间2.当系统采用优先权调度算法时,试写出进程的执行顺序,并计算各个进程的周转时间以及平均周转时间  二、参考答案上面是短进程优先调度算法下面是优先权调度算法 ......
  • 操作系统综合题之“短进程优先调度算法(Shortest-Process-First,SPF)和非抢占式优先权调
    一、问题:有5个进程A、B、C、D、E,他们的到达时间分别为0,10,20,30,35ms,预计他们的运行时间分别为100、60、20、40、80ms。其优先数分别为3、1、4、5、2(优先级数值越小,表示优先级越高)。要求1.分别给出采用短进程优先调度算法、非抢占式优先权调度算法时,进程的启动顺序2.分别计算上......
  • 顺序表的定义,初始化,增加删除,按值按位查找
    这是一个使用C++语言实现的顺序表。顺序表是一种线性表,它的元素在物理上是连续存储的。这里的顺序表是用数组来实现的。以下是对代码中函数的简单解释:InitList(SeqList&L):初始化顺序表,将所有元素赋值为0,长度为0。ListInsert(SeqList&L,inti,intc):在顺序表的第i个位......
  • 数据结构(六)——图的应用
    6.4 图的应用6.4.1最小生成树对于⼀个带权连通⽆向图G=(V,E),⽣成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有⽣成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的最小生成树(Minimum-Spanning-Tree,MST)。最小生成树可能有多个,但边的权值之......