(36)4.20 数据结构(线性表)初始化,输入,删除,查找

#include<stdio.h>

#include<stdlib.h>

#include<errno.h>

#define InitSize 10

#define Max_Size 10

//1.顺序表上基本操作的实现
//顺序表的初始化

typedef struct

{

int* data; //指示动态分配数组指针

int MaxSize;//顺序表的最大容量

int length;//顺序表的当前长度

} SeqList;

typedef struct

{

int* dataMax_Size; //指示动态分配数组指针

int length;//顺序表的当前长度

} SqList;

void InitList(SeqList* L)

{

L->data = (int*)malloc(InitSize * sizeof(int));

L->length = 0;

L->MaxSize = InitSize;

}

void IncreaseSize(SeqList* L, int len)

{

int* p = L->data;

L->data = (int*)malloc(InitSize * sizeof(int) + 5);

if (L->data == NULL)

{

printf("%s\n", strerror(errno));

}

for (int i = 0; i < L->length; i++)

{

L->datai = pi;

}

L->MaxSize =L-> MaxSize + len;

free(p);

}

void ListInsert(SqList* L, int i,int e)

{

if (i<1 || i>L->length + 1)

return 1;

if (L->length >= Max_Size)

return 1;

for (int j = L->length; j >= i; j--)

{

L->dataj = L->dataj - 1;

L->dataj - 1 = e;

L->length++;

}

}

void ListDelete(SqList* L, int i, int e)

{

if (i<1 || i>L->length)

return 0;

e = L->datai - 1;

for (int j = i; j < L->length; j++)

{

L->dataj-1 = L->dataj;

L->length--;

}

return 1;

}

int main()

{

SeqList L;//声明一个顺序表

InitList(&L);//初始化顺序表

IncreaseSize(&L, 5);//增加内存

ListInsert(&L, 3, 3);//插入数据

int e = -1;

ListDelete(&L, 3, &e);

if (ListDelete)//删除数据

printf("已删除第3个元素,删除元素的值为=%d\n", e);

else

printf("位序不合法,删除失败\n");

return 0;

}

相关推荐
小欣加油5 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
烬羽8 小时前
从零理解树与二叉树:用 JS 带你手撕遍历和递归
javascript·数据结构
YHL8 小时前
🚀从零理解树与二叉树 —— 概念、实现与遍历
前端·javascript·数据结构
JieE2128 小时前
JS 到底有多少种数据类型?从ECMA规范到内存本质,一文彻底搞懂
javascript·数据结构·面试
努力努力再努力wz9 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
八解毒剂9 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
Darling噜啦啦11 小时前
JavaScript 数组深度解析:从纯函数到二维数组陷阱,一文吃透前端数据结构核心
前端·javascript·数据结构
不会就选b12 小时前
数据结构之链表OJ题(中)
数据结构·链表
J2虾虾12 小时前
C语言 typedef 用法
c语言·数据结构·算法
budingxiaomoli13 小时前
二叉树中的深搜
数据结构