C语言
--------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int *data;
int length;
int size;
}seqList;
//初始化顺序表
int initList(seqList *L, int size);
//销毁顺序表
void destoryList(seqList *L);
//清空顺序表
void clearList(seqList *L);
int isEmpty(seqList L){
return (L.length == 0);
}
//返回顺序表元素个数
int listLength(seqList L);
//返回顺序表最大元素个数
int listSize(seqList L);
//返回元素
int getElem(seqList L, int i, int *e);
c++
-----------------------------------------------------------------------------------------
#include <iostream>
#include <cstdlib>
using namespace std;
class seqList{
public:
int *data;
int length;
int size;
//初始化顺序表
int initList(int size);
//销毁顺序表
void destoryList();
//清空顺序表
void clearList();
int isEmpty();
//返回顺序表元素个数
int listLength();
//返回顺序表最大元素个数
int listSize();
//返回元素
int getElem(int i, int &e);
//查找元素
int searchElem(int e);
//插入元素
int insertElem(int i, int e);
//删除元素
int deleteElem(int i, int &e);
};
int seqList::initList(int size){
data = new int[size];
length = 0;
size = size;
}
void seqList::destoryList(){
delete data;
length = 0;
size = 0;
}
void seqList::clearList(){
length = 0;
}
int seqList::listLength(){
return length;
}
int seqList::listSize(){
return size;
}
int seqList::isEmpty(){
return (length == 0);
}
int seqList::getElem(int i, int &e){
if(i >= 0 && i < length){
e = data[i];
return 1;
}else{
return 0;
}
}
int seqList::searchElem(int e){
for(int i = 0; i < length; i++){
if(e == data[i]) return i;
}
return 0;
}
int seqList::insertElem(int i, int e){
if(length == size){ //顺序表已满
return 0;
}
if(i >= 0 && i <= length){
int j;
for(j = length - 1; j >= i; j--){
if(j > 0)
data[j+1] = data[j];
}
data[i] = e; //插入元素
length++; //长度加1
}else{
return 0;
}
}
int seqList::deleteElem(int i, int &e){
if(isEmpty()){
return 0;
}
else{
if(i >= 0 && i < length){
e = data[i];
for(int j = i; j < length - 1; j++){
data[j] = data[j+1];
}
length--;
return 1;
}else{
return 0;
}
}
}
int main(){
seqList L;
L.initList(20);
L.insertElem(0,3);
L.insertElem(0,2);
L.insertElem(0,1);
for(int i = 0; i < L.length; i++){
cout<<L.data[i]<<" ";
}
return 0;
}
python 3.5
---------------------------------------------------------------------------------
# 个人觉得python实习顺序表毫无意义
class seqList:
# 初始化
def __init__(self):
self.length = 0
self.data = []
# 清空顺序表
def clear(self):
self.length = 0
self.data = []
# 顺序表是否为空
def isEmpty(self):
return (self.length == 0)
# 返回顺序表的长度
def Length(self):
return self.length
# 获得元素
def get(self, i):
if(i >= 0 and i < self.length):
return self.data[i]
else:
print("索引值错误")
#查找元素
def search(self, e):
# index = self.data.index(e)
# return index
for i in range(0, self.length):
if e == self.data[i]:
return i
return -1
# 插入元素
def insert(self, i, e):
self.data.insert(i,e)
self.length = len(self.data)
# 删除元素
def delete(self, i,):
if i >=0 and i<self.length:
e = self.data[i]
del self.data[i]
self.length = len(self.data)
return e
if __name__ == '__main__':
L = seqList()
L.insert(0,3)
L.insert(0,2)
L.insert(0,1)
for i in range(0, L.length):
print("%d"%L.data[i],)
print("length:%d"%L.length)
e = L.get(0)
print("位置为0的元素:%d"%e)
i = L.search(e)
print("e的位置是:%d"%i)
e = L.delete(1)
print("删除的元素:%d"%e)
for i in range(0, L.length):
print("%d"%L.data[i],)