线性表(顺序表)
来源:互联网 发布:mac怎么显示桌面 编辑:程序博客网 时间:2024/05/01 04:34
#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100///定义结构体typedef int elemtype;typedef struct{ elemtype data[MAXSIZE]; int length;}SqList;///初始化顺序表SqList *InitList(SqList *L){ L=(SqList *)malloc(sizeof(SqList)); L->length=0; return L;}///插入元素int InsItem(SqList *L,int pos,int item){ int i; if(pos<1||pos>L->length+1) { printf("Position is not correct!\n"); return 0; } else if(pos>=MAXSIZE) { printf("The list is overflow.\n"); return 0; } else { for(i=L->length-1;i>=pos-1;i--) { L->data[i+1]=L->data[i]; } L->data[pos-1]=item; L->length++; return 1; }}///删除元素1(根据位置)int DelItem1(SqList *L,int pos){ int i; if(L->length==0) { printf("The list is empty!\n"); return 0; } else if(pos<1||pos>L->length) { printf("Position is not correct!\n"); } else { for(i=pos-1;i<L->length-1;i++) { L->data[i]=L->data[i+1]; } L->length--; return 1; }}///删除操作2(根据值,只删除一个)int DelItem2(SqList *L,int item){ int i; if(L->length==0) { printf("The list is empty!\n"); return 0; } else { for(i=0;i<L->length;i++) { if(L->data[i]==item) { DelItem1(L,i+1); break; } } return 1; }}///删除操作3(根据值,删除多个相同的值)int DelItem3(SqList *L,int item){ int i; if(L->length==0) { printf("The list is empty!\n"); } else { for(i=0;i<L->length;i++) { if(L->data[i]==item) { DelItem1(L,i+1); //与2的区别在于少了break; } } return 1; }}///定位查找1(返回第一个位置)int LocItem1(SqList *L,int item){ int i; if(L->length==0) { printf("The list is empty!\n"); return 0; } else { for(i=0;i<L->length;i++) { if(L->data[i]==item) { return i+1; } } }}///定位查找2(打印多个位置)int LocItem2(SqList *L,int item){ int i; if(L->length==0) { printf("The list is empty!\n"); return 0; } else { for(i=0;i<L->length;i++) { if(L->data[i]==item) { printf("%d ",i+1); } } }}///置空顺序表int EmptyList(SqList *L){ L->length=0; return 1;}///判空int ListEmpty(SqList *L){ if(L->length==0) { printf("The list is empty!\n"); return 0; } else { printf("The list is no empty!\n"); return 1; }}///逆置顺序表SqList *Inverse(SqList *L){ int i,temp; for(i=0;i<L->length/2;i++) { temp=L->data[i]; L->data[i]=L->data[L->length-1-i]; L->data[L->length-1-i]=temp; } return L;}///顺序表排序(冒泡排序/升序)SqList *Sort(SqList *L){ ///同数组排序同理 int i,j,temp; for(i=0;i<L->length;i++) { for(j=0;j<L->length;j++) { if(L->data[i]<L->data[j]) { temp=L->data[i]; L->data[i]=L->data[j]; L->data[j]=temp; } } }}///遍历顺序表int ListTraverse(SqList *L){ int i; if(L->length==0) { printf("The list is empty!\n"); return 0; } for(i=0;i<L->length;i++) { printf("%d ",L->data[i]); } printf("\n"); return i;}int main(){ SqList *L; L=(SqList *)malloc(sizeof(SqList));}
1 0
- 线性表-顺序表
- 线性表--- 顺序表
- 线性表顺序表
- 线性表->顺序表
- 线性表- 顺序表
- 线性表--顺序表
- 线性表---顺序表
- 线性表--顺序表
- 线性表---顺序表
- 【线性表】顺序表
- 线性表--顺序表
- 线性表(顺序表)
- 线性表---顺序表
- 线性表--顺序表
- 线性表-顺序表
- 线性表-顺序表
- 数据结构--顺序线性表
- 线性表顺序存贮
- 隐式(Synchronized)锁和显式(java.util.Lock)锁
- pcl 1.8.0(1) Boost_1_60_0 编译
- python的拉链(zip)
- Shell脚本学习指南
- AnyChat云视频服务平台建立应用的收费情况
- 线性表(顺序表)
- 接口
- 第二周上机实践项目 项目3-小试循环--求1到m间所有奇数的和
- POJ 3061 Subsequence
- 关于android百度地图开发LocationClient对象不能启动的问题解决
- .net framework 4.0安装失败问题
- Maze(BFS处理)
- 网易安卓实习生面试
- zedboard 无线网卡移植问题