数据结构1-顺序表的创建与使用

xiaoxiao2021-02-28  30

对于数目结构来说,一般分为线性表-顺序表-链表,其中链表最难理解!今天来讲解下顺序表的创建与使用!

线性表的定义:

定义n个元素的有限序列,记作(a1,a2,.........,an)ai是表中数据元素,n是元素长度。

顺序表的定义:

将线性表中的元素相继放在一个连续的存储空间中。(可以用一维数组进行描述数据存储结构)

1、在头文件的  .c 文件中

#include <stdio.h> #include "1.顺序表.h" #include <stdlib.h> // 顺序表是以类似数组的方式进行存储并处理数据的 // 创建顺序表 SqList *Creat_List() { // 在堆上创建顺序表的,先创建节点 SqList *s = (SqList*)malloc(sizeof(SqList)/sizeof(char)); if(s == NULL) return NULL; // 给顺序表分配空间,并进行数据初始化 s->List = (ElementType*)malloc(sizeof(ElementType)/sizeof(char)*max_size); if(s->List == NULL) { free(s);        // 如果创建的表的空间大小为空则将此空间释放掉 return NULL;    // 并且返回NULL } s->len  = 0; s->max_len = size; return s; } int Againmallloc(SqList*s) { if(s == NULL) return ERROR; // 重新分配空间分配的字节数目 int new_len = (s->max_len + insize)*sizeof(ElementType)/sizeof(char); ElementType*newlist = (ElementType*)realloc(s->List,new_len); if(newlist == NULL) return ERROR; s->List = newlist; s->max_len += insize; return OK; } int Insert(SqList*s,ElementType Data)  // 插入数据 { if(s == NULL) return ERROR; // 判断空间是否足够 if(s->len == s->max_len)   { // 如果相等则进行重新开辟空间; if(Againmallloc(s) != OK) return ; } s->List[s->len] = Data; s->len++; return OK; } void Display(SqList*s) // 显示操作,进行display()函数操作 { if(s == NULL)          // 函数入口检测 return ;   // 注意此处,不要带返回值 int i;                   for(i = 0;i < s->len;i++)  // 进行遍历 { if (i % 10 == 0)        // 分四个一起打印,然后换行 { printf("\n"); } printf("

转载请注明原文地址: https://www.6miu.com/read-250149.html

最新回复(0)