![]()
/**********************************************
顺序表的操作
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++顺序表操作的机会,对于计算机科学的学生或程序员来说,这是一个巩固数据结构基础知识和提升编程技能的好材料。通过深入研究和实践,你可以更好地理解和运用数据结构,为...
根据给定文件的信息,我们可以总结出以下关于线性顺序表操作程序的知识点: ### 一、线性顺序表概述 线性顺序表是一种常见的数据结构,它通过一组连续的存储单元来存储数据元素,其中每个元素占据一个位置,并且...
本主题“顺序表操作验证”聚焦于一种简单但实用的数据结构——顺序表,它是数据结构课程中常见的学习内容。在这个作业中,你将有机会深入理解和实践顺序表的各种操作。 顺序表是一种线性数据结构,它的所有元素存储...
在这个"shunxubiao.rar_顺序表_顺序表操作"的压缩包中,包含了一个关于顺序表操作的VC++程序,旨在帮助学习者深入理解顺序表的原理和实际应用。 顺序表的基本操作主要包括插入、删除、查找以及一些基本的遍历和排序...
通过学习和实践这些C语言实现的顺序表操作,初学者能够更好地理解数据结构的基础知识,为后续学习更复杂的数据结构如链表、树、图等打下坚实基础。同时,熟练掌握顺序表的使用也能帮助解决实际问题,比如在编程竞赛...
总之,"基于C++控制台应用程序的顺序表操作"项目旨在通过实际编码和测试,使学习者熟悉数组和顺序表的基本操作,包括插入、查找、显示和排序。通过实践这些操作,开发者可以提升其在C++中的数据处理能力,并为更复杂...
顺序表操作基本代码。帮助顺序表的学习和代码的编写等。
实验一 顺序表操作实现 本实验旨在让学生熟练掌握线性表的基本操作在顺序存储上的实现,掌握线性表的顺序存储结构的定义和基本操作的实现,并加深对 C 语言的使用,特别是函数调用的参数传递、指针类型的应用。 一...
大学数据结构课程顺序表操作代码C++(中文注释)..................................................................................................................................................
顺序表的逆置操作涉及交换表的首尾元素,然后继续交换相邻元素,直到整个表都被逆序。这个操作可以在原地完成,不需要额外的存储空间,其时间复杂度为O(n)。 在实际应用中,顺序表的优势在于它的简单性和内存效率,...
- `sequenlist.c` 很可能是顺序表操作的核心实现,包括创建、插入、删除和输出等函数。 理解并熟练掌握顺序表的操作是学习数据结构和算法的基础,通过编写和分析`student.c`和`sequenlist.c`这样的代码,可以帮助...
功能: 1-建表 2-遍历表 3-插入元素 4-删除元素 5-排序元素 6-清屏(只显示菜单) 7-表长度 8-退出
顺序表操作(数据结构C语言版),完整的程序可以下载运行,并附有菜单可以选择要实现的功能
数据结构教学课件:第8讲 数组(三元组顺序表操作——转置算法) 在数据结构领域中,数组是一种基本的数据结构形式,而三元组顺序表是一种特殊的数组形式,它的每个元素由三元组(row, col, item)组成。三元组顺序...
以上就是Java中顺序表操作的基本实现。在实际应用中,可能需要考虑更多复杂情况,如并发控制、错误处理等。了解并掌握这些基本操作是学习数据结构和算法的重要步骤,有助于提升编程能力和问题解决能力。
以下是一些主要的顺序表操作: 1. **初始化**:创建一个新的顺序表,通常涉及动态分配内存以容纳预期数量的元素。例如: ```cpp int* seqList = new int[capacity]; ``` 2. **插入元素**:在表的指定位置插入一个...
顺序表的主要操作包括: 1. **插入操作**:在顺序表中插入一个元素时,通常需要移动一系列元素来为新元素腾出位置。如果表已满,可能需要进行动态扩展,例如通过创建一个更大的数组并复制现有元素。 2. **删除操作...