栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构基础系列

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构基础系列

顺序表的抽象数据类型与基本操作

顺序表的数据结构定义

#include 
using namespace std;
const int list_init_size = 20;
const int list_inc = 10;
typedef int list_elem_type;
struct seq_list
{
    list_elem_type * elem;       // 动态数组就是一个指针
    int list_length, list_size;
};

算法1:顺序表的初始化操作,构造空顺序表

bool seq_list_init(seq_list &L)
{
    L.elem = new list_elem_type[list_init_size];
    if(! L.elem)     
    	return false;
    L.lsit_length = 0;
    L.list_size = list_init_size;
    return true;
}

算法2:创建顺序表,并存入若干元素

bool seq_list_create(seq_list &L, int n, list_elem_type a[])    // 在原有的基础上扩充表的存储空间
{
    L.elem = new list_elem_type[n + list_init_size];
    if(! L.elem)    
    	return false;
    for(int i=0; i 

算法3:顺序表的插入元素操作,并保持其他元素的相对次序不变

bool seq_list_insert(seq_list &L, int n, list_elem_type a)
{
    if(n<1 || n>L.length+1)     
    	return false;
    for(int i=L.list_length; i>n; i--)      
    	L.elem[i+1] = L.elem[i];
    L.elem[n-1] = a;
    L.list_length ++;
    return true;
}

算法4:顺序表的删除元素操作,并返回该元素

bool seq_list_delete(seq_list &L, int n, list_elem_type &a)
{
    if(n<1 || n>L.list_length)      
    	return false;
    a = L.elem[n-1];
    for(int i=n-1; i 

算法5:顺序表的遍历操作

void visit(list_elem_type a)
{   
	cout< 

算法6:在递增有序表中插入元素,并保持顺序表的有序性

void seq_list_insert(seq_list &L, list_elem_type a)
{
    int i = 0;
    while(L.elem[i] 

算法7:顺序表的元素逆置操作

void seq_list_inverse(seq_list &L)
{
    seq_list L0;
    for(int i=0; i 

算法8:顺序表的查找操作,若存在,则返回其位序

bool seq_list_exist(seq_list &L, list_elem_type a)
{
    for(int i=0; i 

算法9:按照字典序比较两个顺序表的大小

char seq_list_compare(seq_list La, seq_list Lb)
{
    for(int i=0; i Lb.elem[i])     return '>';
        if(La.elem[i] < Lb.elem[i])     return '<';
    }
    if(La.list_length == Lb.list_length)    return '=';
    else if(La.list_length > Lb.list_length)    return '>';
    else return '<';
}

算法10:求两个集合的并集

void seq_list_union(seq_list &La, seq_list Lb)
{
    for(int i=0; i 

算法11:归并非递减顺序表

 

算法12:作业题2.09

void seq_list_del_above(seq_list &L, list_elem_type a)
{
    int i, j;
    for(i=0, j=0; i
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号