前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java/C/Python_实现顺序表的基本操作

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

作者头像
Java架构师必看
发布2021-03-22 11:40:28
3760
发布2021-03-22 11:40:28
举报
文章被收录于专栏:Java架构师必看
1、Java实现顺序表 接口类定义如下所示:
代码语言:javascript
复制
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实现顺序表基本操作
代码语言:javascript
复制
#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 实现顺序表基本操作
代码语言:javascript
复制
#!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

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

本文由来源 jackaroo2020,由 javajgs_com 整理编辑,其版权均为 jackaroo2020 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Java实现顺序表 接口类定义如下所示:
  • 2、C实现顺序表基本操作
  • 3、Python 实现顺序表基本操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档