编程日志4.18

顺序表题目:

1.Problem - 2006

固定模板:

#include
using namespace std;
#define eleType int//定义eleType为整型
//#define eleType float//定义eleType为浮点型
//顺序表的定义
struct SequentialList {
    eleType* element;//定义一个指针,用于存储表中元素
    int size;//表示表大小,即元素个数
    int capacity;//表示表容量,即数组大小
};
//顺序表的初始化
void initializeList(SequentialList* list, int capacity) {
    list->element = new eleType[capacity];//用new分配具有指定容量的数组,并将地址赋值给list->element,用来存储顺序表的元素
    list->size = 0;//初始化为0,表示表当前无元素
    list->capacity = capacity;//设为传进来的容量值,用于记录表的最大容量
}
//顺序表的元素插入
void insert(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* newElements = new eleType[newCapacity];
        for (int i = 0; i < list->size; ++i) {
            //将原数组元素复制到新数组
            newElements[i] = list->element[i];
        }
        delete[]list->element;//回收原数组内存空间
        list->element = newElements;
        list->capacity = newCapacity;
    }
    for (int i = list->size; i > index; i--) {
        //把list->element[i - 1]赋值给list->element[i] 
        list->element[i] = list->element[i - 1];
    }
    list->element[index] = element;//插入新元素
    list->size++;//顺序表大小加1
}
//顺序表的元素索引
eleType getElement(SequentialList* list, int index) {
    if (index<0 || index>list->size) {
        //抛出异常,提示索引无效
        throw std::invalid_argument("Invalid index");
    }
    return list->element[index];//有效索引,返回索引位置的元素
}
//主函数
int main() {
    int n;
    while (cin >> n) {
        SequentialList s;//定义顺序表
        initializeList(&s, 1);//初始化

        for (int i = 0; i < n; ++i) {
            int x;
            cin >> x;
            insert(&s, i, x);
        }
        //s.size == n;
        int prod = 1;
        for (int i = 0; i < s.size; ++i) {
            int val = getElement(&s, i);
            if (val % 2 == 1) {
                prod = prod * val;
            }
        }
        cout << prod << endl;
    }
    return 0;
}

简易版:
#include
//定义长度为30的顺序表,以及定义它的长度为asize;
int a[30];
int asize;

int main(){
     
    int n;//代表输入数据个数
    while( scanf("%d"

你可能感兴趣的:(算法,数据结构)