`
sylinx_yqg
  • 浏览: 145414 次
  • 性别: Icon_minigender_1
  • 来自: 福建 漳州
社区版块
存档分类
最新评论

顺序表的操作

 
阅读更多

/**********************************************
顺序表的操作
BY YQG.06.3.6
***********************************************/

#include"stdio.h"#include"stdlib.h"#define LENG sizeof(struct List)/*注意这里不能为sizeof(sqlist*),其为指针类型。否则会弹框*/#ifndef false#define false 0#endif#ifndef true#define true 1#endiftypedef struct List {	int elem[20];	int length;}sqlist;void InitList( sqlist  **list);void DestroyList(sqlist**list);int ListEmpty(sqlist*list);int ListLength(sqlist*list);void DispList(sqlist*list);int GetElem(sqlist*list,int tem,int *item);int LocataElem(sqlist*list,int item);int ListInsert(sqlist **list,int tem,int item);int DeleteList(sqlist **list,int tem,int *item); void Input(sqlist **list);void main(){	sqlist *itemlist;	int item=0,data=0;	InitList(&itemlist);/*注意这里叁数须为&itemlist,	                    即传入itemlist指针变量的地址,			  否则InitList只针对局部的,			  还有InitList声明为InitList(sqlist **list)*/                Input(&itemlist);        DispList(itemlist);        printf("\nInput the location:");        scanf("%d",&item);        printf("\nInput the data:");        scanf("%d",&data);        ListInsert(&itemlist,item,data);        DispList(itemlist);        getch();}void Input(sqlist **list){ int item=0,i=0; //printf("\nInput the list number:"); //scanf("%d",&item); printf("\nInput the list(end with 0):"); (*list)->elem[i]=1; while((*list)->elem[i]!=0)	scanf("%d",&((*list)->elem[i++]));  (*list)->length=i;}  void InitList(sqlist **list){  int i=0;  (*list)=(sqlist*)malloc(LENG);  (*list)->length=0; }void DestroyList(sqlist **list){  free(*list);/*注意这里释放的是LIST单元,			  不是LIST单元的指针变量*/}int ListEmpty(sqlist*list){  return(list->length==0);}int ListLength(sqlist*list){   return list->length;}void DispList(sqlist*list){   int i=0;   for(;i<list-></list->length;i++)	   printf("%d  ",list->elem[i]);}int GetElem(sqlist*list,int tem,int *item){	if(tem< 0 || tem>list->length)		return false;     (*item)=list->elem[tem-1];	 return true;}int LocataElem(sqlist*list,int item){	int i=0;	for(;i<list-></list->length;i++)		if(list->elem[i]==item) break;	if (i<list-></list->length) return i+1; /*找到返回*/	else return false; /*找不到返回*/}int ListInsert(sqlist **list,int tem,int item){	int i=0;  if(tem<0||tem > (*list)->length)	  return false;  for(i=(*list)->length-1;i>=tem-1;i--) /*插入到ELEM{TEM-1]*/  {	  (*list)->elem[i+1]=(*list)->elem[i];/*注意“=”不能颠倒*/   }  (*list)->elem[tem-1]=item;  (*list)->length ++;  return true;}/*********************************************//若这样 DeleteList(sqlist &list,int tem,int &item),//且这样DeleteList(&itemlist,2,item);调用//程序没反映***********************************************/int DeleteList(sqlist **list,int tem,int *item){                                                  int i=0;                                        if(tem<0||tem > (*list)->length)	  return false;  (*item)=(*list)->elem[tem-1];/*return */  for(i=tem-1;i<(*list)->length;i++)  {	  (*list)->elem[i] = (*list)->elem[i+1];  }  (*list)->length--; return false;}


分享到:
评论

相关推荐

    数据结构c语言 顺序表操作

    本主题聚焦于“数据结构C语言中的顺序表操作”,这是一种基础但至关重要的数据结构概念。 顺序表是由一组相同类型的数据元素构成的线性序列,这些元素在内存中按顺序存储。在C语言中,我们通常使用数组来实现顺序表...

    C++顺序表操作含源代码

    总的来说,这个资源包提供了学习和实践C++顺序表操作的机会,对于计算机科学的学生或程序员来说,这是一个巩固数据结构基础知识和提升编程技能的好材料。通过深入研究和实践,你可以更好地理解和运用数据结构,为...

    线性顺序表操作程序.txt

    根据给定文件的信息,我们可以总结出以下关于线性顺序表操作程序的知识点: ### 一、线性顺序表概述 线性顺序表是一种常见的数据结构,它通过一组连续的存储单元来存储数据元素,其中每个元素占据一个位置,并且...

    顺序表操作验证

    本主题“顺序表操作验证”聚焦于一种简单但实用的数据结构——顺序表,它是数据结构课程中常见的学习内容。在这个作业中,你将有机会深入理解和实践顺序表的各种操作。 顺序表是一种线性数据结构,它的所有元素存储...

    shunxubiao.rar_顺序表_顺序表 操作

    在这个"shunxubiao.rar_顺序表_顺序表操作"的压缩包中,包含了一个关于顺序表操作的VC++程序,旨在帮助学习者深入理解顺序表的原理和实际应用。 顺序表的基本操作主要包括插入、删除、查找以及一些基本的遍历和排序...

    数据结构顺序表操作

    通过学习和实践这些C语言实现的顺序表操作,初学者能够更好地理解数据结构的基础知识,为后续学习更复杂的数据结构如链表、树、图等打下坚实基础。同时,熟练掌握顺序表的使用也能帮助解决实际问题,比如在编程竞赛...

    基于C++控制台应用程序的顺序表操作

    总之,"基于C++控制台应用程序的顺序表操作"项目旨在通过实际编码和测试,使学习者熟悉数组和顺序表的基本操作,包括插入、查找、显示和排序。通过实践这些操作,开发者可以提升其在C++中的数据处理能力,并为更复杂...

    顺序表操作基本代码

    顺序表操作基本代码。帮助顺序表的学习和代码的编写等。

    实验一_顺序表操作实现.pdf

    实验一 顺序表操作实现 本实验旨在让学生熟练掌握线性表的基本操作在顺序存储上的实现,掌握线性表的顺序存储结构的定义和基本操作的实现,并加深对 C 语言的使用,特别是函数调用的参数传递、指针类型的应用。 一...

    顺序表操作代码(中文注释)

    大学数据结构课程顺序表操作代码C++(中文注释)..................................................................................................................................................

    数据结构 顺序表操作

    顺序表的逆置操作涉及交换表的首尾元素,然后继续交换相邻元素,直到整个表都被逆序。这个操作可以在原地完成,不需要额外的存储空间,其时间复杂度为O(n)。 在实际应用中,顺序表的优势在于它的简单性和内存效率,...

    顺序表操作

    - `sequenlist.c` 很可能是顺序表操作的核心实现,包括创建、插入、删除和输出等函数。 理解并熟练掌握顺序表的操作是学习数据结构和算法的基础,通过编写和分析`student.c`和`sequenlist.c`这样的代码,可以帮助...

    顺序表操作集合

    功能: 1-建表 2-遍历表 3-插入元素 4-删除元素 5-排序元素 6-清屏(只显示菜单) 7-表长度 8-退出

    顺序表操作(数据结构C语言版)

    顺序表操作(数据结构C语言版),完整的程序可以下载运行,并附有菜单可以选择要实现的功能

    数据结构教学课件:第8讲 数组(三元组顺序表操作——转置算法).pdf

    数据结构教学课件:第8讲 数组(三元组顺序表操作——转置算法) 在数据结构领域中,数组是一种基本的数据结构形式,而三元组顺序表是一种特殊的数组形式,它的每个元素由三元组(row, col, item)组成。三元组顺序...

    java算法(顺序表操作实例)

    以上就是Java中顺序表操作的基本实现。在实际应用中,可能需要考虑更多复杂情况,如并发控制、错误处理等。了解并掌握这些基本操作是学习数据结构和算法的重要步骤,有助于提升编程能力和问题解决能力。

    c++顺序表操作的实现包括就地逆置算法

    以下是一些主要的顺序表操作: 1. **初始化**:创建一个新的顺序表,通常涉及动态分配内存以容纳预期数量的元素。例如: ```cpp int* seqList = new int[capacity]; ``` 2. **插入元素**:在表的指定位置插入一个...

    线性表--顺序表操作

    顺序表的主要操作包括: 1. **插入操作**:在顺序表中插入一个元素时,通常需要移动一系列元素来为新元素腾出位置。如果表已满,可能需要进行动态扩展,例如通过创建一个更大的数组并复制现有元素。 2. **删除操作...

Global site tag (gtag.js) - Google Analytics