一步一步复习数据结构和算法基础-线性表

本文介绍了一种基于数组实现的线性表数据结构,并提供了初始化、创建及打印线性表的具体实现代码。通过该文可以了解到线性表相较于链表在随机访问方面的优势以及在插入删除操作上的局限。

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

线性表是基于数组操作的数据结构,相比于链表线性表的优势是随机访问,但是劣势也是非常的明显,在线性表中执行一次插入删除操作

是难以想象的麻烦,自己仅仅将线性表的创建贴出来.后面复习排序的时候会用到线性表的(插入排序)

#include <stdio.h>
#include <stdlib.h>
#define ListInitSize 100
#define OK 1
#define ERROR 0

typedef struct node
{
	int *data;
	int length;
	int listsize;
}sqlist;

/**/
int InitList(sqlist *list)
{
	(*list).data = (int*)malloc(sizeof(int)*ListInitSize);
	if(!(*list).data)exit(1);
	(*list).length = 0;
	(*list).listsize = ListInitSize;
	return OK;
}

/*创建线性表*/
int CreatList(sqlist *list)
{
	int number;
	int i=0;
	printf("please input number.\n");
	while(scanf("%d",&number) != EOF)
	{
		*((*list).data+i) = number;
		(*list).length++;
		i++;
	}
	return OK;
}

/*打印线性表*/
void PrintList(sqlist *list)
{
	int i=0;
	for(i=0;i<(*list).length;i++)
		printf("%d ",*((*list).data+i));
	printf("\n");
}

/**/
int main()
{
	int sum,number,position;
	sqlist list;
	InitList(&list);
	CreatList(&list);
	PrintList(&list);
	return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值