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

本文深入探讨了顺序表的基本操作,重点介绍了如何删除顺序表的首尾元素及整个表的销毁过程。通过C语言实现,包括初始化、赋值、显示、删除元素和销毁表的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

顺序表删除销毁操作

本文分享如何删除顺序表最后一个元素,第一个元素,以及销毁表

#include"stdio.h"
#include "malloc.h"
#define SEQLIST_INIT_SIZE 10
#include<stdlib.h>
typedef int ElemType;
typedef struct SeqList
{
	ElemType *base;
	int capacity;
	int size;
}SeqList;

//初始化一个顺序表 
void IntialList(SeqList *list)
{
	list->base=(ElemType *)malloc((sizeof(ElemType)*SEQLIST_INIT_SIZE));
	list->capacity=SEQLIST_INIT_SIZE;
	list->size=0;
}
//给顺序表赋0-10随机数 
void textList(SeqList*List)
{
	for(int i=0;i<SEQLIST_INIT_SIZE;i++)
	{
		List->base[i]=rand()%11;
		List->size++;
	}
}

//显示顺序表 
void show_list(SeqList*List )
{
	for (int i = 0; i <List->size;i++)
	{
		printf("%d  ", List->base[i]);          //从第一个元素开始显示 
	}
	printf("\n");
}
//从后面删除一个元素 
void pop_back(SeqList * List)
{
	if (List->size ==0)
	{
		printf("顺序表为空,不能删除数据\n");
		return;
	}
	List->size--;
}
//从前面删除一个元素 
void pop_front(SeqList *List)
{
	if (List->size == 0)
	{
		printf("顺序表为空,不能删除数据\n");
		return;
	}
	//将第一个值覆盖 
	for (int i = 0; i < List->size-1;i++)
	{
		List->base[i] = List->base[i + 1];
	}
	List->size--;
 
}

int length(SeqList *List)
{
	printf("表的长度%d",List->size);
	return List->size;
}

void destroy(SeqList* List)
{
	free(List->base);
	List->base = NULL;
	List->capacity = 0;
	List->size = 0;
} 

int main()
{
	SeqList myList;
	IntialList(&myList);
	textList(&myList);     //给表赋随机数 
	show_list(&myList);
	pop_back(&myList) ;    //删除最后一个 
	show_list(&myList);
	pop_front(&myList);    //删除第一个 
	show_list(&myList);
	length(&myList);       //显示表长度 
	destroy(&myList);       //销毁表 
	show_list(&myList);
}

代码运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值