我也是刚刚接触数据结构与算法,刚刚开始学习。
这里给大家推荐一下哔哩哔哩里面的黑马程序员讲的数据结构与算法
虽然我之前就是完全按照他讲的样子敲动态数组结构没敲出来,我也不知道为什么自己编译老通不过,要么就是wntdll未加载,按照百度的勾了什么符号加载也还是解决不了,要么就是有无法解析的外部命令(我是vc2019)。
虽然没敲出来,但是思路基本差不多学到了,然后就自己用C++的类敲出来了(他讲解的是C版的)
一下是我的码:
#ifndef DYNAMIC_ARRAY_H
#define DYNAMIC_ARRAY_H
#include <iostream>
using namespace std;
class Dynamicarray
{
public:
Dynamicarray();
void resize();
void PushBack_Array(int value);
void Insert_By_Pos(int pos,int value);
void Remove_By_Pos_Array(int pos);
void Remove_By_Value_Array(int value);
void FreeSpace_Array();
int Find_Array(int value);
void Print_Array();
void Clear_Array();
int Capacity_Array();
int Size_Array();
int At_Array(int pos);
private:
int* pAddr; //指针指向数据
int size; //数组的大小
int capacity; //数组的容量大小
};
void Dynamicarray::resize() {
//重新分配容量大小空间函数
int* p = new int[this->capacity * 2];
for (int i = 0; i < this->size; i++) //把旧的值拷贝到新空间
{
p[i] = pAddr[i];
}