C语言数据结构代码实现——顺序表(一)

顺序表初始化

本文分享如何创建一个顺序表,并进行初始化,前插,后插,显示的操作。
顺序表是一组地址连续的存储单位。

#include "stdio.h"
#include "malloc.h"
#define SEQLIST_INIT_SIZE 10 //存储元素个数 
typedef int ElemType;       //存放数据为整形 
typedef struct SeqList      //动态分配一维数组 
{
	ElemType *base;        //线性表的基地址 
	int		 capacity;     //容量  
	int      size;         //表示当前线性表的大小 
 
}SeqList;

//初始化线性表 
void InitSeqList(SeqList *list)    
{
	list->base = (ElemType *)malloc(sizeof(ElemType)*SEQLIST_INIT_SIZE);  //构造一个空表 
	list->capacity = SEQLIST_INIT_SIZE;
	list->size = 0;         //当前线性表为0 
} 

//后插入元素 
void push_back(SeqList *List, ElemType x)
{
	if (List->size>=List->capacity)
	{
		printf("顺序表空间已满,不能插入数据\n");
		return;
	}
	List->base[List->size] = x;      //先放元素后动指针    
	List->size++;                           
}

//前插元素 
void push_front(SeqList *List, ElemType x)
{
	if (List->size>=List->capacity)
	{
		printf("顺序表空间已满,不能插入数据\n");
		return;
	}
	for (int i = List->size; i>=0;i--)           //将前一个元素赋给后一个元素 
	{
		List->base[i] = List->base[i-1];
	}
	List->base[0] = x;                           //将元素插入第一个位置 
	List->size++;                                //多添加一个元素size向后移动一个 
}
//显示插入元素
void show_list(SeqList*List )
{
	for (int i = 0; i <List->size;i++)
	{
		printf("%d  ", List->base[i]);          //从第一个元素开始显示 
	}
	printf("\n");
}


int main()
{
	SeqList mylist;            //定义一个顺序表 
	InitSeqList(&mylist);      //初始化      
	     
    push_back(&mylist, 1);     //插入数据 
    push_back(&mylist, 2);
    push_back(&mylist, 3);
    push_front(&mylist, 5);
    push_back(&mylist, 4);
    push_front(&mylist, 6);
     
    show_list(&mylist);        //显示数据 
} 

运行结果
6 5 1 2 3 4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值