news 2026/11/4 16:30:42

线性表的顺序表示和实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
线性表的顺序表示和实现

1.顺序表示和实现

sequence sq顺序(谁困死在顺序的车道)

flow (f漏 流动流淌)

overflow(溢出 漫出)

init→ initialize → 初始化(1/0)

merge(mer j)合并

头文件

主要作用

常用函数

stdio.h (Standard Input/Output)

标准输入输出

printf()、scanf()

stdlib.h (Standard Library)标准库

内存分配、程序控制等

malloc()、calloc()、realloc()、free()

string.h

字符串处理

strlen()、strcpy()、strcmp()

2.顺序表的插入

先移动元素,再插入新元素,最后修改长度。

从最后一个元素(开始移动)往前移动(调整过的数组的a[3]等于之前数组的a[2]然后再是a[2]等于a[1]):

a[3] = a[2];
a[2] = a[1];

int ListInsert_sq(Sqlist *L,int i,ElemType e)
{
if(i<1|| i >L->length+1) //判断插入位置(顺序表要是连续的)
{
return ERROR;
}

if(L->length>=L->listsize) //判断是否扩容 实际元素数量是否已经达到容量。
{
ElemType *newbase;

newbase = realloc(
L->elem,
(L->listsize+LISTINCREMENT)*sizeof(ElemType) );

if(newbase==NULL)
{
return OVERFLOW;
}

L->elem=newbase; //更新 指针elem,保存可能发生变化的新地址。realloc可能申请新的内存区域并复制原有数据
L->listsize+=LISTINCREMENT; //更新容量listsize
}(内存不够,并且扩容结束)

顺序表插入的核心

for(int j=L->length;j>=i;j--)
{
L->elem[j]=L->elem[j-1];
}

L->elem[i-1]=e;//插入元素
L->length++;//长度加一

return OK;
}

3.顺序表的删除

先取出要删除的元素,再把后面的元素 向前移动。

for(++p; p<=q; ++p) ++p 是初始化 只执行一次 (初始化; 循环条件; 更新操作)

需要接收一个地址*e = *p;才能修改主函数中的变量。(删除的值)

--L->length;(删除一个元素,只需要修改length)

4.时间复杂度

插入平均移动次数删除平均移动次数

顺序表的插入和删除,平均时间复杂度都是O(n)。

5.顺序表的合并

把 La 和 Lb 拼在一起,保持从小到大的顺序。

初始化 Lc 的长度和容量

Lc->listsize = Lc->length = La->length + Lb->length;

6return 0和return 1最大的区别

  • return:把一个值返回给调用者,同时结束 当前函数。

  • if:0为假,非 0为真。

  • main():返回 0通常表示程序正常结束,非 0通常表示异常或错误。

7.realloc

realloc全称是 Re-allocation(重新分配内存)。调整之前已经申请的动态内存空间大小。realloc()作用是扩容

realloc(原来的内存地址(例如指针p),新的内存大小);

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 16:18:41

三月七小助手:把星穹铁道每日日常交给定时任务的使用指南

三月七小助手&#xff1a;把星穹铁道每日日常交给定时任务的使用指南 【免费下载链接】March7thAssistant 日常交给三月七&#xff0c;开拓留给你。《崩坏&#xff1a;星穹铁道》开源自动化助手。 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 通勤前…

作者头像 李华
网站建设 2026/11/4 16:06:53

如何快速在本地跑通 GitHub Actions?actrun 新手完整教程

【免费下载链接】actrun GitHub Actions compatible local runner 项目地址&#xff1a; https://gitcode.com/gh_mirrors/ac/actrun 点击查看 免费下载 还在为 GitHub Actions 的排队和慢启动烦恼吗&#xff1f;本文带你用 actrun&#xff08;一个用 MoonBit 编写的 GitHub A…

作者头像 李华
网站建设 2026/11/4 15:50:16

Hermes Agent容器编排监控工具:Prometheus与Grafana配置

Hermes Agent容器编排监控工具&#xff1a;Prometheus与Grafana配置 Hermes Agent是一款功能强大的容器编排监控工具&#xff0c;能够帮助开发者和运维人员轻松实现对容器环境的全面监控。本文将详细介绍如何配置Prometheus与Grafana&#xff0c;以实现对Hermes Agent容器编排…

作者头像 李华
网站建设 2026/11/4 15:47:21

RevokeMsgPatcher:三步让微信PC端撤回失效

RevokeMsgPatcher&#xff1a;三步让微信PC端撤回失效 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/GitHub_Tr…

作者头像 李华