顺序表动态分盆

#include <stdio.h>
#include <stdlib.h>
#define Size 5    //对Size进行宏定义,表示顺序表申请空间的大小

/*
申请足够大小的物理空间之外,为了方便后期使用表中的数据,顺序表还需要实时记录以下 2 项数据:
    顺序表申请的存储容量;
    顺序表的长度,也就是表中存储数据元素的个数;
*/

typedef struct Table {
	int *head;    //声明了一个名为head的动态数组(不确定大小长度)
	int length;   //记录数组长度
	int size;     //记录顺序表分配存储容量
} table;          //因为使用了typedef 这里的table实际上代表着struct Table
//注意这里定义的 * head  是表示数组首元素地址。为的就是定义一个数组长度不被限制死的动态数组


table initTable() {    //定义一个函数,新建初始化顺序表
	table t;           //使用上面的结构体模型(主要是数组)定义一个顺序表t
	t.head = (int *)malloc(Size * sizeof(
	                           int)); //够造一个空的顺序表,动态申请存储空间,head不是“首”的意思,而是前面定义的数组
	if (!t.head) {    //如果没有初始化成功
		printf("初始化失败");
		exit(0);       //正常退出程序
	}
	t.length = 0; //空表的长度初始化为0
	t.size = Size; //空表的初始存储空间为Size
	return t;   //返回成功定义初始化后的顺序表

}

//输出顺序表中元素的函数
void displayTable(table t) {
	for (int i = 0; i < t.length; i++) {
		printf("%d ", t.head[i]);
	}
	printf("\n");
}

int main() {
	table t = initTable();
	//向顺序表中添加元素
	printf("输入顺序表元素为:");
	for (int i = 1; i <= Size; i++) {
		int m;
		scanf("%d", &m);
		t.head[i - 1] = m;
		t.length++;
	}
	printf("顺序表中存储的元素分别是:\n");
	displayTable(t);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中可以使用动态分配的顺序表来实现动态数组,其中vector是C++标准库中提供的一个动态数组容器[^2]。下面是一个使用vector实现动态分配顺序表的示例代码: ```cpp #include <iostream> #include <vector> int main() { std::vector<int> seqList; // 创建一个空的动态分配顺序表 // 在顺序表末尾插入元素 seqList.push_back(10); seqList.push_back(20); seqList.push_back(30); // 获取顺序表的长度 int length = seqList.size(); // 遍历顺序表 for (int i = 0; i < length; i++) { std::cout << seqList[i] << " "; } std::cout << std::endl; // 删除顺序表中的元素 seqList.pop_back(); // 查找顺序表中的元素 int element = 20; auto it = std::find(seqList.begin(), seqList.end(), element); if (it != seqList.end()) { std::cout << "Element " << element << " found at index " << std::distance(seqList.begin(), it) << std::endl; } else { std::cout << "Element " << element << " not found in the sequence list" << std::endl; } return 0; } ``` 这段代码使用了vector容器来实现动态分配顺序表。首先,我们创建了一个空的动态分配顺序表seqList。然后,我们使用push_back函数在顺序表的末尾插入元素。接下来,我们使用size函数获取顺序表的长度,并使用for循环遍历顺序表中的元素。然后,我们使用pop_back函数删除顺序表中的最后一个元素。最后,我们使用find函数查找顺序表中的元素,并使用distance函数计算元素在顺序表中的索引。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值