LIst.h
#pragma once #includeusing namespace std; template struct ordinalList { Datatype* a; int max_size; int passing_size; }; template class OrdinalList { public: ordinalList< Datatype>* create(ordinalList< Datatype>* L) { L = (ordinalList< Datatype>*)malloc(sizeof(ordinalList< Datatype>)); L->a = new Datatype[10]; L->max_size = 10; L->passing_size = 0; return L; } template void input(ordinalList< Datatype>* &L) { int n; if ((L->passing_size)>=(L->max_size-1)) { ordinalList< Datatype>* T = (ordinalList< Datatype>*)realloc(L->a, L->max_size + 10); ordinalList< Datatype>* L = T; L->max_size += 10; } while(cin >> n) { L->a[L->passing_size] = n; L->passing_size++; } } template void output(ordinalList< Datatype>*& L) { int j = L->passing_size; for (int i = 0; i < j; i++) { cout << L->a[i] << endl; } } template int length(ordinalList< Datatype>*& L) { return L->passing_size; } template bool find(ordinalList< Datatype>*& L, Datatype replaceing) { int cout = 0; while (cout < L->passing_size) { if (L->a[cout] == replaceing) break; else cout++; } if (cout >= L->passing_size) { return 0; } else return 1; } template int substitute(ordinalList< Datatype>*& L, Datatype replaceing, Datatype repalced) { if (!find(L, replaceing)) { cout << "none" << endl; return 0; } else { int count = 0; while (count < L->passing_size) { if (L->a[count] == replaceing) break; else count++; } L->a[count] = repalced; return 1; } } template void PopList(ordinalList< Datatype>*& L, Datatype replaceing) { if (find(L, replaceing)) { cout << "none" << endl; return 0; } else { int cout = 0; while (cout < L->passing_size) { if (L->a[cout] == replaceing) break; else cout++; } } for (int i = cout; i < L->passing_size-1; i++) { L->a[i] = L->a[i + 1]; } L->passing_size--; } };



