以下是使用C语言、C#、Java、JavaScript、Python和Go实现顺序表(即数组)的基本操作的示例代码。
C语言实现:
#include <stdio.h>
#include <stdlib.h>#define MAX_SIZE 100typedef struct {int data[MAX_SIZE];int length;
} SeqList;void InitList(SeqList *L) {L->length = 0;
}int ListInsert(SeqList *L, int i, int e) {if (i < 1 || i > L->length + 1 || L->length == MAX_SIZE) {return 0;}for (int j = L->length; j >= i; j--) {L->data[j] = L->data[j - 1];}L->data[i - 1] = e;L->length++;return 1;
}int ListDelete(SeqList *L, int i, int *e) {if (i < 1 || i > L->length) {return 0;}*e = L->data[i - 1];for (int j = i; j < L->length; j++) {L->data[j - 1] = L->data[j];}L->length--;return 1;
}void PrintList(SeqList L) {for (int i = 0; i < L.length; i++) {printf("%d ", L.data[i]);}printf("\n");
}int main() {SeqList L;InitList(&L);ListInsert(&L, 1, 1);ListInsert(&L, 2, 2);ListInsert(&L, 3, 3);PrintList(L);int e;ListDelete(&L, 2, &e);printf("Deleted element: %d\n", e);PrintList(L);return 0;
}
C#实现:
using System;public class SeqList
{private int[] data;private int length;private const int MAX_SIZE = 100;public SeqList(){data = new int[MAX_SIZE];length = 0;}public void Insert(int i, int e){if (i < 1 || i > length + 1 || length == MAX_SIZE){throw new IndexOutOfRangeException();}for (int j = length; j >= i; j--){data[j] = data[j - 1];}data[i - 1] = e;length++;}public bool Delete(int i, out int e){if (i < 1 || i > length){e = 0;return false;}e = data[i - 1];for (int j = i; j < length; j++){data[j - 1] = data[j];}length--;return true;}public void Print(){for (int i = 0; i < length; i++){Console.Write(data[i] + " ");}Console.WriteLine();}
}class Program
{static void Main(string[] args){SeqList list = new SeqList();list.Insert(1, 1);list.Insert(2, 2);list.Insert(3, 3);list.Print();int e;if (list.Delete(2, out e)){Console.WriteLine("Deleted element: " + e);}list.Print();}
}