·利用C语言的结构体及指针的相关知识,仿照数组类自己实现一个数组。并实现类似数组的一些接口方法。这边考虑利用结构体,有三个因素,数组指针,数组长度,数组元素实际长度。定义结构体如下
![](https://img.haomeiwen.com/i4758298/2d3806a137f291f4.png)
定义一些接口方法
![](https://img.haomeiwen.com/i4758298/5fbcffdc02a72d04.png)
create_Array是初始化方法。
![](https://img.haomeiwen.com/i4758298/d1a777bb590b2d2b.png)
isEmpty 和 isFull 是判断是否为空 或者数组是否满的方法,主要是判断结构体成员变量的长度以及目前实际元素的个数。
![](https://img.haomeiwen.com/i4758298/bb6d565d117cd46f.png)
append和 insert方法主要是模拟Array类的add和 insert方法,其中append 很简单就是给指针当前指向的下个位置赋值,并且对长度做+1即可,insert方法稍微麻烦点,要传入插入的index以及插入的值,要把index后的元素都要做后移操作。
![](https://img.haomeiwen.com/i4758298/f80c9b505881cf38.png)
deleteArray跟插入的原理大致类似,传入index,以及一个地址,是为了将要删除的元素的值一并返回。
![](https://img.haomeiwen.com/i4758298/349adffbbf60d287.png)
convertArray 是翻转的方法,原理就是分别利用俩个头尾的位置,相互交换,直到重合停止,sortArray即是一个简单的冒牌排序,这个排序方法有很多种,这边只是利用其中一种。
![](https://img.haomeiwen.com/i4758298/556c2bf102247f9f.png)
上面是一些接口方法的实现,这样我们就可以利用定义的这个结构体以及接口方法来仿照实现一个数组的功能。
![](https://img.haomeiwen.com/i4758298/2ec60a14cd011853.png)
完毕。
网友评论