C语言代码实现数据结构之顺序表

该博客介绍了使用C语言实现数据结构中的顺序表,包括14个功能的完整实现,并且具备自动增加顺序表容量的功能。项目包含一个SeqList.h头文件和两个cpp源文件SeqList.cpp、Main.cpp。
摘要由CSDN通过智能技术生成

目录

 

一、参考视频:

二、本项目实现的功能:【1-14都实现】另:自动增加顺序表的容量也已实现。

三、一个头文件(SeqList.h),两个cpp文件(SeqList.cpp,Main.cpp)

1.SeqList.h

2.SeqList.cpp

3.Main.cpp


一、参考视频:

一:https://edu.51cto.com/course/4725.html(前四节,讲顺序表的)

二:郝斌老师数据结构视频

二、本项目实现的功能:【1-14都实现】另:自动增加顺序表的容量也已实现。

三、一个头文件(SeqList.h),两个cpp文件(SeqList.cpp,Main.cpp)

 


1.SeqList.h

#include <stdio.h>
#include "malloc.h"			   //用到malloc函数:为结构体开辟一段内存空间。
#include "assert.h"			   //顺序表初始化时:用来检测/判断通过malloc开辟的内存空间是否为空

#define SEQLIST_INIT_SIZE 8                //该顺序表容量/最多可容纳的长度为8。不是实际顺序表的长度
#define INCREASE_SIZE 3                    //自动增长因子,当顺序表满的时候再次插入时每次增加INC_SIZE个
typedef int ElemType;	                   //这样写有助于更改数据类型。ElemType可以代表多种数据类型int/char/string

typedef struct SeqList
{
	ElemType *base;			    //顺序表的首地址
	int capacity;			    //顺序表的 容量  【capacity比size大】
	int size;		            //顺序表的实际大小/有效个数
};
/*函数声明*/
bool Increase(SeqList *list);                //可自动增长顺序表长度
void InitSeqList(SeqList *list);             //顺序表初始化
void push_back(SeqList *list,ElemType val);  //1.尾插:val代表要插入的数据
void push_front(SeqList *list, ElemType val);//2.头插:val代表要插入的数据
void delete_back(SeqList *list);             //3.尾删
void delete_front(SeqList *list);            //4.头删
void show_list(SeqList *list);	             //5.遍历输出顺序表
void insert_pos(SeqList *list,int pos,ElemType val);//6.按位置插入数据:val代表要插入的数据
int find(SeqList *list,ElemType val);        //7.寻找数据:val代表要查找的数据
int length(SeqList *list);                   //8.求顺序表长度
void delete_pos(SeqList *list,int pos);	     //9.按位置删除数据
void delete_val(SeqList *list,ElemType val); //10.按值删除数据:val代表要删除的数据
void sort(SeqList *list);                    //11.排序
void inverse(SeqList *list);                 //12.倒置
void clear(SeqList *list);                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值