#C++ Day39 Basic Data Structure Chapter3  November 25 2025

//Basic Data Structure Day2 Vito’s Sequential List 5 review

#include <iostream>

using namespace std;

#define eleType int

//1.

struct SequentialList {

eleType* elements;

int capacity;

int size;

};

//2.initial

void initializeList(SequentialList * list,int capacity){

list->elements = new eleType[capacity];

list->capacity = capacity;

list->size = 0;

}

//3.Is Empty

bool isEmpty(SequentialList* list) {

return list->size == 0;

}

int sizeOfList(SequentialList* list) {

return list->size;

}

//4.destroy

void destroyList(SequentialList* list) {

delete[] list->elements;

}

//5.insert

void insertElement(SequentialList* list, int index, eleType element) {

if (index < 0 || index > list->size)

{

throw std::invalid_argument(“invalid index”);

}

if (list->size == list->capacity) {

int newCapacity = list->capacity*2;

eleType* newList = new eleType[newCapacity];

for (int i = 0; i < list->size; ++i) {

newList[i] = list->elements[i];

}

delete[] list->elements;

list->elements = newList;

list->capacity = newCapacity;

}

for (int i = list->size; i > index; –i) {

list->elements[i] = list->elements[i – 1];

}

list->elements[index] = element;

list->size++;

}

//6.delete

void deleteElement(SequentialList* list, int index) {

if (index < 0 || index >= list->size)

{

throw std::invalid_argument(“invalid index”);

}

for (int i = index; i < list->size – 1; i++) {

list->elements[i] = list->elements[i + 1];

}

list->size–;

}

//7.find

int findElementIndex(SequentialList* list, eleType element) {

for (int i = 0; i < list->size; i++) {

if (list->elements[i] == element) {

return i;

}

}

return -1;

}

//8.get

eleType getElement(SequentialList* list, int index) {

if (index < 0 || index >= list->size)

{

throw std::invalid_argument(“invalid index”);

}

return list->elements[index];

}

//9.update

void updateElement(SequentialList* list, int index, eleType element) {

if (index < 0 || index >= list->size)

{

throw std::invalid_argument(“invalid index”);

}

list->elements[index] = element;

}

int main() {

SequentialList myList;

initializeList(&myList, 10);

cout << “Size:” << sizeOfList(&myList)<<endl;

cout << “isEmpty:” << isEmpty(&myList) << endl;

for (int i = 0; i < myList.capacity; i++) {

insertElement(&myList, i, i * 10);

}

cout << “Size:” << sizeOfList(&myList) << endl;

cout << “isEmpty:” << isEmpty(&myList) << endl;

for (int i = 0; i < myList.size; i++) {

cout <<getElement(&myList, i)<<‘ ‘;

}

cout << endl;

int idx = findElementIndex(&myList, 60);

updateElement(&myList, idx, 1314);

for (int i = 0; i < myList.size; i++) {

cout << getElement(&myList, i) << ‘ ‘;

}

cout << endl;

deleteElement(&myList, myList.size – 1);

for (int i = 0; i < myList.size; i++) {

cout << getElement(&myList, i) << ‘ ‘;

}

cout << endl;

destroyList(&myList);

return 0;

}