顺序表
来源:互联网 发布:java 对url encode 编辑:程序博客网 时间:2024/06/06 01:16
#include <stdio.h>#include <malloc.h>#define MAXSIZE 20 typedef struct LNode *List;struct LNode{ int Data[MAXSIZE]; int Last;}; struct LNode L;List PtrL;List MakeEmpty(){ List PtrL; PtrL=(List)malloc(sizeof(struct LNode)); PtrL->Last=-1; return PtrL;} /*查找成功的平均比较次数为(n+1)/2,平均时间性能为O(n)*/int Find(int X,List PtrL){ int i=0; while(i<=PtrL->Last&&PtrL->Data[i]!=X) i++; if(i>PtrL->Last) return -1; else return i;}/*平均移动次数为n/2,平均时间性能为O(n)*/void Insert(int X,int i,List PtrL){ int j; if(PtrL->Last==MAXSIZE-1){ printf("表已满,不能插入"); return; } if(i<1||i>PtrL->Last+2) { printf("位置不合法"); return; } for(j=PtrL->Last;j>=i-1;j--) PtrL->Data[j+1]=PtrL->Data[j]; PtrL->Data[i-1]=X; PtrL->Last++; return;}/*平均移动次数(n-1).2,平均时间性能为O(n)*/void Delete(int i,List PtrL){ int j; if(i<1||i>PtrL->Last+1){ printf("不存在第%d个元素",i); return; } for(j=i;j<=PtrL->Last;j++){ PtrL->Data[j-1]=PtrL->Data[j]; } PtrL->Last--; return;}/*输出整个顺序表*/void ListTraverse(List PtrL){ int i; for(i=0;i<PtrL->Last+1;i++) { printf("%5d",PtrL->Data[i]); } return;}/*int Find(int X,List PtrL){ int i; for(i=0;i<=PtrL->Last;i++){ if(PtrL->Data[i]=X) return i+1; } return 0; }*/ int main() { List L1; int i; L1=MakeEmpty(); for(i=1;i<=10;i++){ Insert(i+2,i,L1); } ListTraverse(L1); printf("\n"); Insert(100,2,L1); ListTraverse(L1); printf("\n"); Delete(3,L1); ListTraverse(L1); printf("\n"); int k; k=Find(100,L1); printf("%5d",k); return 0; }
阅读全文
0 0
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 最长回文
- hdu 5685 Problem A (逆元)
- 如何禁止极速版迅雷thunderplatform.exe启动
- 登录注册那些事儿(二)
- 六数码 关于EOF
- 顺序表
- Error:Could not run build action using Gradle installation解决办法
- Online Hard Example Mining
- 1-3 beanstalkd参数
- vue2.x 中如何获取 DOM
- Leetcode 368 Largest Divisible Subset
- 链表
- SSIS DSN contains an architecture mismatch between the Driver and Application
- 利用nodejs制作爬虫获取数据的案例