小工具知识网

当前位置: 首页 > 行业知识 > 数据结构第一节实践作业

行业知识

数据结构第一节实践作业

2026-11-07 08:06:26 来源:互联网转载

一,三元组Triplet的定义,表示与实现

思考点(PPT方法2)如何实现动态内存分布——malloc实现

这���我采用的是动态分配内存的方式,有一个代码很重要

T = (ElemType*)malloc(3 * sizeof(ElemType));//动态分配内存

这里使用的函数malloc包含在头文件头文件:#include 中,函数用来动态地分配内存空间(如果你不了解动态内存分配,请查看:C语言动态内存分配及变量存储类别,其原型为:void* malloc (size_t size);

C++中使用(new)分配和(delete)撤销内存

【参数说明】size 为需要分配的内存空间的大小,以字节(Byte)计

【函数说明】malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,请使用 calloc()函数。

【返回值】分配成功返回指向该内存的地址,失败则返回 NULL。由于申请内存空间时可能有也可能没有,所以需要自行判断是否申请成功,再进行后续操作。

上面这条代码就表示给T分配了一个3个任意类型的长度的空间

代码实现

有了这个函数认知的基础下,我尝试着根据老师上课所讲的内容写出以下代码(我用的VS编译的,第一行是为了防止scanf函数无法正常运行)

判断大小是我采用了三元运算符   (关系表达式) ? 表达式1 : 表达式2;

#define _CRT_SECURE_NO_WARNINGS 1#include#include#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;//Status是函数的类型,其值是函数结果状态代码typedef int ElemType;//----采用动态分配的顺序存储结构----typedef ElemType* Triplet;//由InitTriplet分配3个元素存储空间//----基本操作的函数原型说明----Status InitTriplet(Triplet& T, ElemType v1, ElemType v2, ElemType v3);//操作结果:构造了三元组T,元素e1,e2和e3分别被赋以参数v1,v2和v3的值。Status DestroyTriplet(Triplet& T);//操作结果:三元组T被销毁。Status Get(Triplet T, int i, ElemType& e);//初始条件:三元组T已存在,1 (T[1] > T[2] ? T[1] : T[2]) ? (T[0] > T[1] ? T[0] : T[1]) : (T[1] > T[2] ? T[1] : T[2]);return OK;}//MaxStatus Min(Triplet T, ElemType& e){e = (T[0]  T[2] ? T[1] : T[2]) ? (T[0]  

运行结果(三组结果)

 

二,变量,指针,引用做参数的程序和运行结果

 问题:在C++环境中显示c++缺少类型说明符,假定为int;这一点不知道怎么改,在网上搜了一下,这里可以我找到了另一篇博客有详细介绍

一文弄清using namespace std;的作用[2021最新版]_usingnamespacestd的作用-CSDN博客文章浏览阅读3.4w次,点赞133次,收藏401次。using namespace std;到底有什么用?为什么我们每次头文件后面都要加它?不加它会怎么样?导读对于很多学习C++的同学,老师教同学们写的一个程序就是“hello world”,同时也会在不经意间在头文件的后面加上using namespace std;但是却没有告诉我们为什么要这么加,所以很多同学可能现在仍然不明白他的作用。本文将详细介绍using namespace std; 帮助大家彻底理解!using namespace std;概念命名空间的定义如何访问命名空间?为什._usingnamespacestd的作用https://blog.csdn.net/codebowl/article/details/118052278弄清楚这个以后,开始编写相关程序

变量做参数

#include using namespace std;void swap(int a, int b){int temp;temp = a;a = b;b = temp;}int main(){int i = 3, j = 5;swap(i, j);cout 

上一篇:支付宝运势揭秘,轻松掌握未来运势走向!

下一篇:BT宝塔面板全方位解读,功能、性能与用户体验大解析!