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 if(vectorPtr != null) {
21 vectorPtr.capacity = capacity;
22 vectorPtr.elements = new Object[capacity];
23 if(vectorPtr.elements == null)
29 /* =============================================================================
31 * =============================================================================
39 /* =============================================================================
41 * -- Returns null if failed
42 * =============================================================================
44 public Object vector_at (int i) {
45 if ((i < 0) || (i >= size)) {
46 System.out.println("Illegal Vector.element\n");
53 /* =============================================================================
55 * -- Returns false if fail, else true
56 * =============================================================================
58 public boolean vector_pushBack (Object dataPtr) {
59 if (size == capacity) {
60 int newCapacity = capacity * 2;
61 Object[] newElements = new Object[newCapacity];
63 //void** newElements = (void**)malloc(newCapacity * sizeof(void*));
64 if (newElements == null) {
67 capacity = newCapacity;
68 for (int i = 0; i < size; i++) {
69 newElements[i] = elements[i];
72 elements = newElements;
75 elements[size++] = dataPtr;
80 /* =============================================================================
82 * -- Returns null if fail, else returns last element
83 * =============================================================================
92 return (elements[--(size)]);
95 /* =============================================================================
97 * =============================================================================
105 /* =============================================================================
107 * =============================================================================
115 /* =============================================================================
117 * =============================================================================
122 //qsort.sort(elements, 0, (elements.length - 1));
123 qsort.sort(elements);
124 //qsort(elements, size, 4, compare);
127 * =============================================================================
129 * =============================================================================
131 public static boolean
132 vector_copy (Vector_t dstVectorPtr, Vector_t srcVectorPtr)
134 int dstCapacity = dstVectorPtr.capacity;
135 int srcSize = srcVectorPtr.size;
136 if (dstCapacity < srcSize) {
137 int srcCapacity = srcVectorPtr.capacity;
138 Object[] elements = new Object[srcCapacity];
140 if (elements == null) {
143 dstVectorPtr.elements = null;
144 dstVectorPtr.elements = elements;
145 dstVectorPtr.capacity = srcCapacity;
148 for(int i = 0; i< srcSize; i++) {
149 dstVectorPtr.elements[i] = srcVectorPtr.elements[i];
152 dstVectorPtr.size = srcSize;