/**********************************************
顺序表的操作
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;}
分享到:
相关推荐
线性顺序表操作程序.txt 线性顺序表操作程序.txt 线性顺序表操作程序.txt
数据结构c语言 顺序表操作 源代码 运行正常
顺序表操作基本代码。帮助顺序表的学习和代码的编写等。
顺序表操作验证,数据结构课程作业。对顺序表进行操作验证。
大学数据结构课程顺序表操作代码C++(中文注释)..................................................................................................................................................
功能: 1-建表 2-遍历表 3-插入元素 4-删除元素 5-排序元素 6-清屏(只显示菜单) 7-表长度 8-退出
顺序表操作(数据结构C语言版),完整的程序可以下载运行,并附有菜单可以选择要实现的功能
数据结构顺序表操作
C++数据结构实验资源,源代码也有。顺序表的操作!
1、建立含有若干个元素的顺序表; 2、对已建立的顺序表实现插入、删除、查找、逆置等操作。
这有线性表的操作:顺序存储,链存储结构, 单链表,顺序表,循环链表,双向链表
数据结构顺序表操作合集,大部分的顺序表操作都在这里了
用c++实现的完整的顺序表的操作,还包括就地逆置算法
java算法 顺序表操作实例 用Java进行顺序表的数据插入,删除,显示功能
实验一_顺序表操作实现.pdf
自己写的数据结构顺序表操作,已经编译过确认无误
实验一_顺序表操作实现.doc
顺序表基本操作 顺序表实现 顺序表
数据结构中有关顺序表运算的VC++程序,帮助大家理解顺序表这个数据结构的具体操作。