1 public class Vector_t {
8 // qsort = new QuickSort();
11 /* =============================================================================
13 * -- Returns null if failed
14 * =============================================================================
16 public static Vector_t vector_alloc (int initCapacity) {
17 int capacity = Math.imax(initCapacity, 1);
18 Vector_t vectorPtr = new Vector_t();
19 vectorPtr.capacity = capacity;
20 vectorPtr.elements = new Object[capacity];
24 /* =============================================================================
26 * =============================================================================
34 /* =============================================================================
36 * -- Returns null if failed
37 * =============================================================================
39 public Object vector_at (int i) {
44 /* =============================================================================
46 * -- Returns false if fail, else true
47 * =============================================================================
49 public boolean vector_pushBack (Object dataPtr) {
50 if (size == capacity) {
51 int newCapacity = capacity * 2;
52 Object[] newElements = new Object[newCapacity];
54 //void** newElements = (void**)malloc(newCapacity * sizeof(void*));
55 capacity = newCapacity;
56 for (int i = 0; i < size; i++) {
57 newElements[i] = elements[i];
60 elements = newElements;
63 elements[size++] = dataPtr;
68 /* =============================================================================
70 * -- Returns null if fail, else returns last element
71 * =============================================================================
80 return (elements[--(size)]);
83 /* =============================================================================
85 * =============================================================================
93 /* =============================================================================
95 * =============================================================================
103 /* =============================================================================
105 * =============================================================================
110 //qsort.sort(elements, 0, (elements.length - 1));
111 qsort.sort(elements);
112 //qsort(elements, size, 4, compare);
115 * =============================================================================
117 * =============================================================================
119 public static boolean
120 vector_copy (Vector_t dstVectorPtr, Vector_t srcVectorPtr)
122 int dstCapacity = dstVectorPtr.capacity;
123 int srcSize = srcVectorPtr.size;
124 if (dstCapacity < srcSize) {
125 int srcCapacity = srcVectorPtr.capacity;
126 Object[] elements = new Object[srcCapacity];
127 dstVectorPtr.elements = null;
128 dstVectorPtr.elements = elements;
129 dstVectorPtr.capacity = srcCapacity;
132 for(int i = 0; i< srcSize; i++) {
133 dstVectorPtr.elements[i] = srcVectorPtr.elements[i];
136 dstVectorPtr.size = srcSize;