70、线性表的相关操作

线性表的操作

线性表的一些常用操作

  • 创建线性表

  • 销毁线性表

  • 清空线性表

  • 将元素插入线性表

  • 将元素从线性表中删除

  • 获取线性表中某个位置的元素

  • 获取线性表的长度

线性表操作的实现

  • 线性表在程序中表现为一种特殊的数据类型

  • 线性表的操作在程序中的表现为一组函数

用C语言描述线性表

list.h

#ifndef _LIST_H_
#define _LIST_H_

typedef void List;
typedef void ListNode;

/*
    该方法用于创建并且返回一个空的线性表
*/
List* List_Create();

/*
    该方法用于销毁一个线性表list
*/
void List_Destroy(List* list);

/*
    该方法用于将一个线性表list中的所有元素清空
    使得线性表回到创建时的初始状态
*/
void List_Clear(List* list);

/*
    该方法用于返回一个线性表list中的所有元素个数
*/
int List_Length(List* list);

/*
    该方法用于向一个线性表list的pos位置处插入新元素node
    返回值为1表示插入成功,0表示插入失败
*/
int List_Insert(List* list, ListNode* node, int pos);

/*
    该方法用于获取一个线性表list的pos位置处的元素
    返回值为pos位置处的元素,NULL表示获取失败
*/
ListNode* List_Get(List* list, int pos);

/*
    该方法用于删除一个线性表list的pos位置处的元素
    返回值为被删除的元素,NULL表示删除失败
*/
ListNode* List_Delete(List* list, int pos);

#endif

list.c

#include <stdio.h>
#include "list.h"

List* List_Create()
{
    return NULL;
}

void List_Destroy(List* list)
{

}

void List_Clear(List* list)
{

}

int List_Length(List* list)
{
    return 0;
}

int List_Insert(List* list, ListNode* node, int pos)
{
    return 0;
}

ListNode* List_Get(List* list, int pos)
{
    return NULL;
}

ListNode* List_Delete(List* list, int pos)
{
    return NULL;
}

test.c

#include<stdio.h>
#include<stdlib.h>
#include"list.h"

int main(int argc, char *argv[]) {
    List* list = List_Create;
    int i = 0;
    int j = 1;
    int k = 1;

    List_Insert(list,&i,0);
    List_Insert(list,&j,1);
    List_Insert(list,&k,2);

    List_Clear(list);
    List_Destroy(list);

    return 0;
}
//能编译,能运行
//因为list.c文件中没有具体实现,因此运行无结果

小结

  • 线性表在程序中表现为一种特殊的数据类型

  • 线性表的操作则表现为一组相关的函数

问题:

1.线性表的各个函数如何实现呢?

2. 有几种线性表的实现方式呢?

3. 每种实现方式的优缺点是什么呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值