顺序表的所有功能的的实现

之前使用的结构体发现这个根本没有这个必要,其实这个顺序表就是一个数组罢了

#include "func.h"
#define MAXSIZE 100							/* 开始限定这个顺序表的大小 */
INT32 create_SL(INT32 *a)					/* 创建 */
{
	INT32 OSM = 1, i32num = 0, i32 = 0;			

	OSM = OSM_Printf("请输入要创建链表中元素的个数:\n");
	i32num = scanf_for();

	if ( (0 > i32num) || (MAXSIZE < i32num) )				/* 创建的条件 */
	{
		OSM = OSM_Printf(" 非法的数据\n");
	}
	else
	{
		OSM = OSM_Printf("输入相关的元素:\n");
		for ( i32 = 0; i32 < i32num; i32++)					/* 输入的元素 */
		{
			a[i32] = scanf_for();
			OSM_Printf(" \n");
		}
	}

	OSM_Printf("已经创建了表\n");
	OSM_Printf("表为:");
	for ( i32 = 0; i32 < i32num; i32++)					/* 打印出来 */
	{
		OSM = OSM_Printf(" %d\t",a[i32]);
	}
	return (*a);
}

INT32 Insert_SL(INT32 *b)
{
	/* 定义的标识符, 输入的位置, 数组的长度, 插入的数据,循环体变量 */
	INT32 OSM = 1, i32Insert_position = 0, i32length = sizeof(b)/sizeof(INT32), i32Insert_data, i32j = 0;
	OSM = OSM_Printf("输入要插入的位置和数据:\n");

	i32Insert_position = scanf_for();					/* 插入的位置 */
	if( 0 > i32Insert_position || i32length < i32Insert_position)			/* 插入位置的条件不满足的情况下 */
	{
		OSM = OSM_Printf("非法的数据输入:\n");
	}
	else																	/* 插入的条件满足的条件下 */
	{
		OSM = OSM_Printf("请输入要插入的数据:");
		i32Insert_data = scanf_for();										/* 输入插入的数据 */
	}
	i32length++;															/* 长度加一 */

	OSM = OSM_Printf("%d",i32length);

	for (i32j = i32length; i32j > i32Insert_position; i32j--)				/* 位置的后移 */
	{
		b[i32j] = b[i32j - 1];
	}
	b[i32j - 1] = i32Insert_data;

	for ( i32j =  0; i32j < i32length ;i32j++)						/* 打印出来的信息 */
	{
		printf("%d\t",b[i32j]);
	}
	return (*b);
}

INT32 Delete_SL(INT32 *a)					/* 删除 */
{
	INT32 i32i = 0, OSM = 0, i32delete_position = 0, i32length = sizeof(a)/sizeof(INT32);
	OSM = OSM_Printf("输入要删除的位置:\n");
	i32delete_position = scanf_for();				/* 输入要删除的位置 */
	if ((0 > i32length) || (i32delete_position > i32length))					/* 条件 */
	{
		OSM_Printf("输入的非法数据");
	}
	else
	{
		i32length--;															/* 长度减一 */
		for (i32i = i32delete_position; i32i < i32length; i32i++)				/* 进行数据的处理 */
		{
			a[i32i] = a[i32i+1];
		}
	}
	return (*a);
}

INT32 add_SL(INT32 *a)							/* 追加 */
{
	INT32 OSM = 1, i32length = sizeof(a)/sizeof(INT32), i32add_data;
	OSM = OSM_Printf("输入要追加的数据:");
	i32add_data = scanf_for();						/* 输入追加的元素 */
	i32length++;									/* 长度加1 */
	a[i32length] = i32add_data;						/* 直接赋值 */
}

INT32 get_SL(INT32 *a)					/* 获取元素 */
{
	INT32 OSM = 1, i32location = 0, i32length = sizeof(a)/sizeof(INT32);
	OSM = OSM_Printf("选择需要获位置\n");
	i32location = scanf_for();
	if (i32location > i32length)
	{
		OSM = OSM_Printf("超出范围了\n");
	}
	else
	{
		OSM = OSM_Printf("获取的数据为: %d \t",a[i32location]);
	}

	return 0;
}

INT32 find_SL(INT32 *a)				/* 查找 */
{
	INT32 OSM = 1,flag = 0, i32i = 0, i32elem = 0, i32length = sizeof(a)/sizeof(INT32);

	OSM = OSM_Printf("输入需要查找元素:\t");
	i32elem = scanf_for();
	for (i32i = 0; i32i < i32length; i32i++)
	{
		if ( i32elem == a[i32i])
		{
			OSM = OSM_Printf("查询的位置是 %d \n",i32i + 1);
			flag = 1;
			break;
		}
	}
	if (1!= flag )
	{
		OSM_Printf("没有符号条件的值");
	}
}

INT32 clear_SL(INT32 *a)			/* 清空 */
{
	INT32 OSM = 1,flag = 0, i32i = 0, i32elem = 0, i32length = sizeof(a)/sizeof(INT32);
	i32length = 0;
	free(a);
}

INT32 empty_SL(INT32 *a)					/* 判读是否为空 */
{
	INT32 OSM = 1,flag = 0, i32i = 0, i32elem = 0, i32length = sizeof(a)/sizeof(INT32);
	if ( NULL == a[0])						/* 判断第一个是否为空 */
	{
		OSM = OSM_Printf("是空的\n");
	}
	else
	{
		OSM = OSM_Printf(" 不是空的 \n");
	}

	return 0;
}

INT32 full_SL(INT32 *a)							/* 是否已满 */
{
	INT32 OSM = 1,flag = 0, i32i = 0, i32elem = 0, i32length = sizeof(a)/sizeof(INT32);
	if ( NULL == a[MAXSIZE -1])				/* 判断最后一个元素是否为空 */
	{
		OSM = OSM_Printf("没有满");
	}
	else
	{
		OSM = OSM_Printf("已经满了");
	}
	return 0;
}

INT32 number_SL(INT32 *a)					/* 元素的个数 */
{
	INT32 OSM = 1,flag = 0, i32i = 0, i32elem = 0, i32length = sizeof(a)/sizeof(INT32);
	OSM = OSM_Printf("元素的个数为%d\n",i32length);
	return 0;
}
时间: 2024-10-23 11:23:27

顺序表的所有功能的的实现的相关文章

顺序表(C++实现)

顺序表是基本的数据结构,创建Seqlist类,主要包括类的默认成员函数(构造函数.析构函数.赋值运算符重载),顺序表的基本功能实现. //顺序表 typedef int DataType; class Seqlist { public:      Seqlist()      //无参构造函数          :_array(NULL)          ,_size(0)          ,_capacity(0)      { }            ~Seqlist()    //析

数据结构复习---顺序表和单链表

1.前言: 最近比较浮躁,想学习一门新的技术却总是浅尝辄止,遇到不懂的地方就想跳过去,时间长了,心态就有点崩了.静下心来,去喝了几碗心灵鸡汤.鸡汤博主感动到了我:"无专注,无风景.不要太贪心,一次只做一件事,而且只做最重要的事.".于是乎,我把家里翻了个底朝天,找到了我垫在床底下的<数据结构>这本书,觉得自己是时候静下心来好好复习一下基础了.今天刚看到顺序表和链表,把我的学习心得记录在这里.也希望自己能坚持,老老实实的把这本书复习完. 2.数据结构的重要性: 讲一门知识之前

顺序表的功能实现

顺序表的创建,插入,删除,清空,销毁,查找,输出功能 #include<stdio.h> #include<malloc.h> #include<stdlib.h> #defineTRUE 1 #defineFALSE 0 #defineOK 1 #defineERROR 0 #defineINFEASIBLE -1 #defineOVERFLOW -2 typedefint Status ; typedefint ElemType ; //线性表的动态分配顺序存储结构

java实现数据结构-线性表-顺序表,实现插入,查找,删除,合并功能

package 顺序表; import java.util.ArrayList; import java.util.Scanner; public class OrderList { /** * @param args * @author 刘雁冰 * @2015-1-31 21:00 */ /* * (以下所谓"位置"不是从0开始的数组下标表示法,而是从1开始的表示法.) * (如12,13,14,15,16数据中,位置2上的数据即是13) * * 利用JAVA实现数据结构-线性表-顺

顺序表的功能的C代码

#include<stdio.h> #include<stdlib.h> #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OK 1 #define OVERFLOW -2 #define ERROR 0 typedef int ElemType; typedef int status; typedef struct { ElemType *elem; int length; int listsize; }SqL

用C++结构体实现顺序表的诸多功能

编译运行环境为visual studio 2017 for community #include <iostream> #include<stdlib.h> #define maxsize 100 #define ok 0 typedef int elemtype; typedef int status; using namespace std; struct slist { elemtype *elem = NULL; int length; }; void create(sli

稀疏矩阵的三元组顺序表的C语言实现

对于没有排序功能的集合来说,都可以使用java.util.Collections.sort()方法进行排序,它除了集合对象以外,还需要提供一个比较器.如果列表中的元素全部都是相同的类型,并且这个类实现了Comparable接口,就可以简单的调用Collections.sort()方法,如果这个类没有实现comparable接口,那么可以创建一个比较器传递一个Comparator实例作为Sort()的第二个参数进行排序,另外,如果不想使用默认的分类顺序进行排序,同样也可以传递一个Comparato

【线性表2】线性表的顺序实现:顺序表

顺序表简介 特点:使用一组地址连续的存储单元依次存储表中的数据元素,常见的就是使用数组去实现. 表中逻辑相邻的数据元素,在物理内存上也相邻. 顺序表中的任意数据元素都可随机访问,是一种支持随机访问,长度自动动态调整的线性表结构. 优点:访问表中的元素很快,时间复杂度为O(1) 缺点:插入,删除元素需要移动大量的元素,时间复杂度为O(n) . 因此如果我们在编程中需要这样一种线性表数据结构:构造后对元素的访问操作很频繁,而很少进行增,删等元素位置的调整操作,那么就可以考虑使用顺序表. 代码实现 #

顺序表 初始化 插入 删除 查找 合并 交换 判断为空 求长度

#include <stdio.h> #include <stdlib.h> #define OK 1 #define TRUE 1 #define ERROR -1 #define FALSE -1 #define OVERFLOW -2 #define ElemType int #define Status int typedef int ElemType typedef int Status #define LEN sizeof(SqList) #define MLC (Li