test 988 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. struct IntList {
  2. int size;
  3. int* data;
  4. };
  5. IntList* listNewInt() {
  6. IntList* list = new IntList[1];
  7. list->size = 0;
  8. list->data = new int[4];
  9. return list;
  10. }
  11. void listAdd(IntList* list, int i) {
  12. int l = length(list->data);
  13. if(list->size >= l) {
  14. int* newData = new int[l * 2];
  15. for(int i = 0; i < l; i++) {
  16. newData[i] = list->data[i];
  17. }
  18. delete list->data;
  19. list->data = newData;
  20. }
  21. list->data[list->size] = i;
  22. list->size++;
  23. }
  24. int listGetLength(IntList* list) {
  25. return list->size;
  26. }
  27. int listGetIndex(IntList* list, int index) {
  28. return list->data[index];
  29. }
  30. void listDelete(IntList* list) {
  31. delete list->data;
  32. delete list;
  33. }
  34. void main() {
  35. IntList* list = listNewInt();
  36. for(int i = 0; i < 5; i++) {
  37. listAdd(list, i * 50 + 3);
  38. }
  39. for(int i = 0; i < listGetLength(list); i++) {
  40. print listGetIndex(list, i);
  41. }
  42. listDelete(list);
  43. }