顺序表的增删改查

顺序表的增删改查

本实验围绕顺序表的应用展开,旨在掌握算法到程序的转换、熟悉顺序存储结构及其基本操作。实验内容包括:实现顺序表的初始化、插入、删除、查找、修改、判空/满、求长度和显示等基本功能;设计算法将元素插入有序顺序表并保持有序;以及合并两个升序顺序表为一个新的有序顺序表。程序采用C语言实现,具备良好的注释、输入提示和错误处理机制(如非法位置判断),并通过主函数对各项功能进行测试。运行结果验证了各算法的正确性与健壮性,体现了顺序表在数据组织与操作中的实用性。

实验:顺序表的应用

一、实验目的

1.掌握如何将算法转换为程序; 2.熟悉顺序存储结构; 3.熟悉顺序表的操作; 4.熟悉顺序表的应用。

二、实验要求

1.程序要有注释,包括对总体功能、关键句、段的说明; 2.源程序必须调试通过,对每个输入的要求以及输出要有清晰的提示。程序要具有一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等。

三、实验内容

1.实验题目 (1)完成顺序表的基本运算:初始化、显示、求长度、判空、判满、插入、删除、按位置取元素、按值查找等,并编写主函数测试算法。 (2))设计算法:将一个元素插入到有序的顺序表中,使顺序表仍有序,并编写主函数测试算法。

(3)设 A 和 B 两个顺序表,其元素按从小到大的顺序排列。编写一个算法将 A 和 B 的全部元素合并到有序顺序表 C 中,并编写主函数测试算法。 提示:有序表的合并; 有序表的产生,可以人为输入,也可以调用(2)的算法来实现。

2.数据结构的设计: 所选数据结构为顺序表。 3.算法描述: (2)用循环给顺序表赋初值,将要插入的数据从前往后一个一个和原顺序表元素比较,当该数据比顺序表此该位置的值大,小于或等于原顺序表的后一个值时,记录该位置,然后将数据插入到该位置。 (3)在 A,B 都没合并完的前提下,用 while 循环一个个比较 A 和 B 里边的元素值,谁小,就把谁放到 C 里,以此类推。

四、算法实现

头文件:table.h

cpp
#ifndef _TABLE_H_
#define _TABLE_H_
#include <stdio.h>
#include <stdlib.h>
#define Size 5

typedef struct Table{
    int * head;
    int length;
    int size;
}table;

table initTable();
int TableLength(table t);
int emptyTable(table t);
int fullTable(table t);
table addTable(table t,int elem,int add);
table insertTable(table t,int elem);
table mergeTable(table t1,table t2,table t3);
table delTable(table t,int add);
int selectTable(table t,int elem);
int getTable(table t,int add);
table amendTable(table t,int elem,int newElem);
void displayTable(table t);

#endif // TABLE_H

主函数:main.c

五、实验运行结果

栈与队列的应用
已抵达博客尽头

评论区

评论加载中...