`

用数组实现线性表的各种操作(C语言)只完成一部分功能,明日继续

阅读更多
未完待续:D
/*
线性结构数组的实现 
*/
#include <stdio.h>
#include <malloc.h>  //包含了malloc函数
#include <stdlib.h>  //包含了exit函数 

//首先定义描述数组信息的结构体类型
struct Arr
{
  int * pBase;//存放数组首地址的指针变量
  int len;//数组长度
  int cnt;//数组中元素的个数
};

//定义数组的基本操作的函数声明
void init_arr(struct Arr * pArr,int length);//数组初始化
bool append_arr(struct Arr * pArr,int val);//追加元素
bool insert_arr(struct Arr * pArr,int index ,int val);//插入元素
bool delete_arr();//删除元素
int get(); //得到元素
bool is_empty(struct Arr * pArr);//判断是否为空
bool is_full();//判断是否已满
void sort_arr();//排序
void show_arr(struct Arr * pArr);//遍历数组
void inversion_arr();//数组倒置

int main(void)
{
	struct Arr arr;
	init_arr(&arr,6);//初始化函数测试
	//show_arr(&arr);
	append_arr(&arr,3);
	append_arr(&arr,2);
	append_arr(&arr,9);
	insert_arr(&arr,2,7);
	show_arr(&arr);
	return 0;
}

//初始化数组的函数实现  pArr是结构体变量arr的指针
void init_arr(struct Arr * pArr,int length)
{
   pArr->pBase=(int *)malloc(sizeof(int)*length);//malloc()函数头文件声明
   if(NULL==pArr->pBase)
   {
      printf("动态内存分配失败!\n");
	  exit(-1);//要在头文件声明
   }
   else
   {
     pArr->len=length;
	 pArr->cnt=0;
   }

}
//遍历数组函数实现
void show_arr(struct Arr * pArr)
{
	if(is_empty(pArr))
	{
	   printf("数组为空\n");
	}
	else
	{
	  for(int i=0;i<pArr->cnt;i++)
	  {
	    printf("%d",pArr->pBase[i]);
	  }
	}
   
}
//判断数组是否为空
bool is_empty(struct Arr * pArr)
{
   if(pArr->cnt==0)
   
	   return true;
   else
   
	   return false;
   
}
//数组追加元素
bool append_arr(struct Arr * pArr,int val)
{
  if(pArr->cnt < pArr->len)
  {
    pArr->pBase[pArr->cnt]=val;
	(pArr->cnt)++;
	return true;
  }
  else
	 printf("数组已满\n");
    return false;
}
//插入元素
bool insert_arr(struct Arr * pArr,int index ,int val)
{
   if(pArr->cnt<pArr->len&&index<=pArr->cnt)
   {
	   for(int i=pArr->cnt-1;i>=index-1;i--)
	   {
	     pArr->pBase[i+1]=pArr->pBase[i];
		 
		 
	   }
	   pArr->pBase[index-1]=val;
	   (pArr->cnt)++;
	   return true;
   }
   else
   {
	   printf("插入失败\n");
	   return false;
   }


}
1
7
分享到:
评论
1 楼 卑微的去爱你 2011-07-31  
居然不能再编辑拉?

相关推荐

    用数组实现线性表各种操作(C语言)完结

    这篇博客“用数组实现线性表各种操作(C语言)完结”很可能是详细介绍了如何使用C语言中的数组来构建并操作线性表。 线性表的操作主要包括: 1. 初始化:创建一个空的线性表,通常是在数组中分配空间,并将其长度设...

    数组实现线性表-VS2015.zip_C++

    在编程领域,数组是一种基础且重要的数据结构,它在实现线性表时起着关键作用。线性表是由n(n≥0)个相同类型元素构成的有限序列,这些元素可以按照它们在表中的顺序进行访问。在C++中,数组就是一种自然的方式来...

    数组实现线性表 数据结构

    本文主要介绍如何使用数组来实现线性表这一基本数据结构。 #### 线性表定义与特点 线性表是一种线性数据结构,它是由一组相同类型的数据元素构成的有限序列。这些数据元素之间存在一种一对一的关系,即每个元素都...

    数组,线性表的推广,很有趣哦

    数组可以看作是一种推广的线性表,例如一维数组可以看作是一个线性表,二维数组可以看作是一个“数据元素是一维数组”的一维数组,三维数组可以看作“数据元素是二维数组”的一维数组,依此类推。 二、数组的定义 ...

    线性表实现各种操作 使用数组

    用数组实现线性表,并完成各种操作,主要是插入查找、删除插入

    用Java动态数组扩充实现线性表

    本话题聚焦于使用动态数组来实现线性表,这是一种常见的数据结构实现方式,因为它既保留了数组的高效访问特性,又能灵活地调整大小以适应数据的变化。 动态数组,也称为可变长度数组,不同于固定大小的数组,它允许...

    数组实现线性表-VS2015.zip_数组实现线性表格

    6. **其他实现方式**:除了数组,线性表还可以用链表实现,链表在插入和删除操作上更灵活,但访问速度相对较慢。 在实际编程中,根据具体需求,我们可能会结合数组和链表的优点,比如使用动态数组(如C++的`std::...

    线性表的基本操作C语言实现(不用库函数)

    包括线性表的各种基本操作C语言实现(不用库函数)

    用java定长数组实现线性表

    总结来说,使用Java的定长数组实现线性表涉及创建一个类来封装数组,并实现一系列操作以满足线性表的基本功能。这包括初始化、插入、删除、查找、更新、获取元素、判断为空以及获取长度等操作。在这个过程中,需要...

    线性表的C语言实现

    在C语言中,可以声明一个固定大小的数组来实现线性表。优点是访问速度快,因为数组支持随机访问,时间复杂度为O(1)。缺点是大小固定,一旦创建,无法动态扩展或收缩,可能导致空间浪费。 2. **动态数组实现线性表**...

    数据结构 线性表实验代码 C语言 数组

    在这个实验代码中,我们关注的是使用C语言实现线性表,并采用数组作为底层存储机制。 线性表的基本操作包括: 1. 初始化:创建一个空的线性表,通常用一个空数组来表示。 2. 插入元素:在线性表的特定位置插入一个...

    c语言数据结构实现线性表

    下面我们将深入探讨如何用C语言来实现线性表,并结合描述和标签,分析相关知识点。 一、数组实现线性表 1. 定义结构体:首先,我们需要定义一个结构体,它包含元素值以及数组长度和实际元素数量。例如: ```c ...

    线性表的合并/c语言

    在这个“线性表的合并/c语言”项目中,我们将探讨如何使用C语言来实现线性表的合并操作,特别是针对有序线性表的合并。此程序采用单链表作为线性表的实现方式,它是一种动态数据结构,允许在运行时添加或删除元素。 ...

    C语言线性表基本操作

    本文将介绍如何使用C语言实现线性表的基本操作,包括初始化、插入、获取元素、遍历以及更新元素。 首先,线性表的实现通常采用链表或数组的形式。这里采用数组来存储线性表,因为数组具有随机访问的优势,且在某些...

    数据结构中线性表的相关算法的c语言实现

    2. **C语言实现线性表的基本结构**:在C语言中,线性表通常用数组或链表来实现。数组实现的线性表在内存中连续存储,访问速度快但插入和删除操作可能涉及大量元素的移动;链表实现则通过指针链接元素,插入和删除...

    用C语言实现线性表的算法

    初始化线性表时,可以预定义一个固定大小的数组,或者使用动态内存分配来根据需要扩展数组。插入和删除操作需要考虑元素移动的问题,例如,在数组中间插入元素,需要将所有后续元素依次后移;删除元素则需要将后续...

    线性表基本操作 C语言

    在实现这些操作时,需要考虑到链表的各种边界条件,如空链表、索引越界等。此外,还需要注意内存管理,确保在插入和删除节点时正确地分配和释放内存。 对于测试,可以设计不同的数据和操作序列来验证链表操作的正确...

    用数组实现一个线性表.zip

    在实际编程中,我们常常用数组来实现线性表,因为数组具有连续存储、随机访问等特性,使得操作高效且简单。本教程将深入探讨如何用数组来实现线性表,并涉及其相关的数据操作。 1. **数组的基本概念** 数组是一种...

    数组描述线性表

    1、创建线性表类:线性表的存储结构使用数组描述,提供操作: 插入、删除、 查找等。 2、设通讯录中每一个联系人的内容有:姓名、电话号码、班级、宿舍。由键 盘输入或文件录入的通讯录信息建立通讯录表,使用线性表...

Global site tag (gtag.js) - Google Analytics