IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 2021-09-02 数据结构与算法 NO.2 表(1) -> 正文阅读

[数据结构与算法]2021-09-02 数据结构与算法 NO.2 表(1)

second.分类笔记 线性表

定义:线性表具有相同数据类型的n(n>0)个数据元素的有限序列。n为表长。n=0表示此表为空表。

基本操作:初始化表:构造空表L,分配内存空间。? ? ? ? InitList(&L)

? ? ? ? ? ? ? ? ? 销毁操作:销毁线性表,释放表L占用的空间。? ? ? ? DestroyList(&L)

? ? ? ? ? ? ? ? ? 插入操作:在表的第i个位置上插入指定元素e。? ? ? ? ListInsert&(L,i,e)

? ? ? ? ? ? ? ? ? 删除操作:删除表的第i个位置的元素,并用e返回被删元素值。ListDelete(&L,i,e)

? ? ? ? ? ? ? ? ? 按值查找操作:在表中查找给定关键字值的元素。? ? ? ? LocateElem(&L,e)

? ? ? ? ? ? ? ? ? 按位查找操作:获取表中第i个位置元素的值。? ? ? ? GetElem(&L,i)

? ? ? ? ? ? ? ? ? ···············(综合即为 增删改查)

one.顺序表

定义:用顺序储存的方式实现线性顺序储存。把逻辑上相邻的元素储存在位置上也相邻的存储单元中。

实现方式:静态分配

例:

#include <stdio.h>
#include <stdlib.h>
#define MaxSize 10	
    //定义最大长度(由于是静态数组的最大长度,因此,若数组存储满了,则不可更改了) 
typedef struct{
	int data[MaxSize];//用静态数组存放数据
	int length;//顺序表当前长度 
}SqList; 	//顺序表类型定义

//初始化顺序表
void InitList(Sqlist &L){	//没有给数据设置默认值,则内存会遗留一些奇怪的数据 
	L.length=0;	//初始化长度为0 
}

int main(int argc, char *argv[]) {
	SqList L;	//声明一个顺序表 
	InitList(L);	//初始化顺序表 
	return 0;
}

动态分配:

#include <stdio.h>
#include <stdlib.h>
#define InitSize 10	//顺序表初始长度 ,动态分配数组
typedef struct{
	int *data;	//只是动态分配数组的指针 
	int MaxSize;	//顺序表最大容量 
	int length;//顺序表当前长度 
}SqList; 	//顺序表类型定义(动态) 


/*	c语言中 有两个函数,malloc和free函数 
	malloc 会申请一整片连续的存储空间 ,需要返回一个指针,强制转换类型
	例:L.data=(Elem Type*)malloc(sizeof(Elem Type)*InitSize);
*/ 

//初始化顺序表
void InitList(Sqlist &L){	//没有给数据设置默认值,则内存会遗留一些奇怪的数据 
	L.data=(int *)malloc(InitSize*sizeof(int));//用malloc函数申请一片连续的存储空间 
	L.length=0;	//初始化长度为0 
	L.MaxSize=InitSize;
}

void IncreaseSize(SeqList &L,int len){
	int *p=L.data;
	L.data=(int *)malloc((L.MaxSize+len)*sizeof(int));
	for(int i=0; i<L.length;i++){
		L.data[i]=p[i];	//将数据复制到新区域 
	}
	L.MaxSize=L.MaxSize+len;	//顺序表最大长度加len 
	free(p);	//释放原来的内存空间 
}

int main(int argc, char *argv[]) {
	SqList L;	//声明一个顺序表 
	InitList(L);	//初始化顺序表 
	//往顺序表中插入几个元素
	IncreaseSize(L,5); 
	return 0;
}

懒······就看了这么多,下次再继续改·····

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:47:48  更:2021-09-04 17:48:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:23:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码