Java/C/Python_实现顺序表的基本操作

1、Java实现顺序表 接口类定义如下所示:
package c03;

/**
 * @description  Java 实现顺序表的基本操作
 *
 * @author  LT
 * @date  2020/4/19
 */
public interface ISequence {

    /**
     * 在 pos 位置插入 val
     *
     * @param pos
     * @param val
     * @return
     */
    boolean add(int pos, Object val);

    /**
     * 查找关键字 key 找到返回 key 的下标,没有返回 -1
     *
     * @param key
     * @return
     */
    int search(Object key);

    /**
     * 查找是否包含关键字 key 是否在顺序表当中
     *
     * @param key
     * @return
     */
    boolean contains(Object key);

    /**
     * 得到 pos 位置的值
     *
     * @param pos
     * @return
     */
    Object indexOf(int pos);

    /**
     * 除第一次出现的关键字 key
     *
     * @param key
     * @return
     */
    Object remove(Object key);

    /**
     * 得到顺序表的长度
     *
     * @return
     */
    int size();

    /**
     * 打印顺序表
     */
    void display();

    /**
     * 清空顺序表以防内存泄漏
     */
    void clear();
}

2、C实现顺序表基本操作
#include <stdio.h>

#define MAX 10
struct SList{
	int data[MAX];
	int length;
};

void init(struct SList* p){
	p->length = 0;
}

void printList(const struct SList* p){
	int i=0;
	for(i; i<p->length; i++){
		printf("%d ",p->data[i]);
	}
	putchar('\n');
}

int insert(struct SList* p, int k, int x){
	//  length -1 length
	if (k<0 || k>p->length || p->length == MAX){
		return 0;
	}
	else {
		int i=p->length-1;
		for(i; i>=k; i--){
			p->data[i+1] = p->data[i];
		}
		p->data[k] = x;
		p->length++;
		return 1;
	}

}

int delete(struct SList* p, int k, int* px){
	if (k<0 || k >= p->length) {
		return 0;
	} else {
		*px = p->data[k];
		int i = k +1;
		for (i; i<p->length;i++) {
			p->data[i-1] = p->data[i];
		}
		p->length--;
		return 1;
	}
}
int main(){
	struct SList a;
	// 初始化
	init(&a);
	//  打印
	printList(&a);
	// 插入
	insert(&a,0,11);
	insert(&a,0,22);
	insert(&a,1,33);
	printList(&a);
	// 删除
	int x;
	delete(&a,1,&x);
	delete(&a,1,&x);
	printList(&a);
	return 0;
}
3、Python 实现顺序表基本操作
#!usr/bin/env python
# -*- encoding=utf8 -*-

'''
线性表的顺序结构 
'''
__author__ = "LT"

a = list()
a.append(11)
a.append(22)
a.append(22)
print(a)
a.remove(22)
print(a)
a.pop(0)
print(a)

详细源码参考地址:
https://github.com/jackaroo2020/my-algorithm

此文为个人《数据结构与算法》学习笔记,如果文章中有什么不恰当之处,欢迎各位指正,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值