线性表的顺序存储的基本操作
2016-04-10 16:58
309 查看
插入:
删除:
#include<stdio.h> #define N 100 typedef struct s { int elem ; int last; }Seqlist; int Locate(Seqlist l,int e)//查找 { int i=0; while(i<=l.last&&l.elem[i]!=e) i++; if(i<=l.last) return i+1; else return 0; } int DelList(Seqlist *l,int *e,int i)//插入 { int k; if((i<1)&&(i>l->last+1)) { return 0; } *e=l->elem[i-1]; for(k=i;i<=l->last;k++) l->elem[k-1]=l->elem[k]; l->last--; return 1; } int main() { Seqlist l; //l.last=0; int m,i,n,k; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&l.elem[i]); l.last++; } scanf("%d",&m); k=Locate(l,m);//查找位置 DelList(&l,&m,k); for(i=0;i<n-1;i++) { printf("%d ",l.elem[i]); } printf("\n"); return 0; }
删除:
#include<stdio.h> #define N 100 typedef struct s { int elem ; int last; }Seqlist; int Locate(Seqlist l,int e)//查找 { int i=0; while(i<=l.last&&l.elem[i]!=e) i++; if(i<=l.last) return i+1; else return 0; } int DelList(Seqlist *l,int *e,int i)//插入 { int k; if((i<1)&&(i>l->last+1)) { return 0; } *e=l->elem[i-1]; for(k=i;i<=l->last;k++) l->elem[k-1]=l->elem[k]; l->last--; return 1; } int main() { Seqlist l; //l.last=0; int m,i,n,k; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&l.elem[i]); l.last++; } scanf("%d",&m); k=Locate(l,m);//查找位置 DelList(&l,&m,k); for(i=0;i<n-1;i++) { printf("%d ",l.elem[i]); } printf("\n"); return 0; }
相关文章推荐
- Leetcode no. 201
- 《深入理解计算机系统》第七章学习笔记
- Timus 1204 Idempotents
- 编程
- 使用JDBC获取各数据库的Meta信息——表以及对应的列
- Java中引用类型变量的转换
- C#中定时器timer的使用
- 复习笔记——计算机网络
- HashMap的工作原理
- 字符的截取 和 时间的设置
- linux笔记 自学之路
- Android成长之路(2)——简单地使用Intent
- 对vb感受(上)
- poj3250 Bad Hair Day
- 对内存对齐的深一步理解
- 20145208 《Java程序设计》第6周学习总结
- 简短的perl程序
- leetcode 299. Bulls and Cows
- Linux IO 多路复用是什么意思?
- 数据库分区初识