✨ 写在前面
本人是一位计算机的大一新生,也是经常在网上查找文章进行学习,经常有时候会懒得做笔记了,就在网上找相应写的比较好的文章收藏便于复习,但是有时候一个知识点我需要收集好几个文章的信息并且内容多有重复,不便于整理,于是萌发了自己写文章的念头。目的是能督促自己对知识点进行总结整理,加深理解,以自己能理解的方式记录下来,也希望能帮助到向我一样努力积极勤奋的计算机新手,欢迎大家讨论交流!
如果有哪里理解的不对的地方,欢迎指正!
一、引言
有序顺序表是一种特殊的线性表,其内部的元素是有序的。
关于线性表,可以看我之前发表的文章
二、有序顺序表的特点
-
有序性:元素按照特定的顺序排列,通常是升序或降序。
-
随机访问:可以通过索引快速访问表中的任意元素。
-
搜索效率:有序顺序表支持高效的搜索操作,如二分搜索。
-
插入和删除操作:插入和删除元素可能需要移动其他元素以保持顺序。
三、使用 C 语言实现有序顺序表
- 定义数据结构
#define MaxSize 100
typedef struct {
int list[MaxSize]; //使用数组来存储元素
int size; //记录存储的元素个数
}SeqList;
- 基本操作
- 插入元素:找到合适的位置插入新元素,这里使用二分法进行查找,在处理较多元素时可以大大减少时间
int SeqList_Insert(SeqList* head, int x)
{
if (head->size >= MaxSize)
{
printf("顺序表已满,无法插入!\n");
return -1;
}
if (head->size =