BNUOJ 4101(线性表的插入与删除)
2012-07-30 21:25
155 查看
线性表插入与删除操作
Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 65536 KBSubmit: 78 Accepted: 40
[Prev][Next]
Description
实现线性表的插入和删除基本操作Input
第一行给出线性表内现有数据元素的数目N,1<=N<=10;第二行给出N个整数:a1、a2、a3…aN,整数之间用一个空格隔开,表示线性表现有的数据元素。第三行给出两个整数K、E1,1<=K<=N,表示在第K个元素前插入值为E1的数据元素;第四行给出一个整数E2,表示在线性表中删除第一个值为E2的数据元素(假定线性表里一定存在值为E2的数据元素)。Output
在一行内按次序输出进行插入和删除后线性表的所有数据元素,数据元素之间用一个空格隔开。Sample Input
8 12 13 21 24 28 30 42 77 5 25 24
Sample Output
12 13 21 25 28 30 42 77
#include<stdio.h> #include<string.h> #include<stdlib.h> const int N=15; /* C语言中常量都用const定义 #define定义的只是宏,在预处理的时候就都被替换掉了 const定义的应该是其值不可以被改变的变量,就是常量了, 它在运行的时候是确实在内存里(栈,堆,或是静态区)分配了内存的, 是有自己的地址的,可以做求地址运算。 */ int vis ; int T; void insert(int pos,int num) { int i,j; for(i=T;i>=pos;i--) vis[i+1]=vis[i]; vis[pos]=num; T++; } void delete_output(int num)//delete为关键字 { int i,j; for(i=1;i<=T;i++) if(vis[i]==num) break; for(i;i<=T;i++) vis[i]=vis[i+1]; T--; printf("%d",vis[1]); for(i=2;i<=T;i++) printf(" %d",vis[i]); printf("\n"); } int main() { int i,j; int pos,num1,num2; scanf("%d",&T); for(i=1;i<=T;i++) scanf("%d",vis+i); scanf("%d%d",&pos,&num1); insert(pos,num1); scanf("%d",&num2); delete_output(num2); return 0; }
相关文章推荐
- C语言实现线性表的插入和删除操作
- 试用多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作:插入,删除,测长等。
- 线性表顺序存储结构插入和删除
- 数据结构 P22-24 算法实现 线性表的插入与删除
- 线性表的链式存储的插入与删除操作
- 线性表初始化、判空、插入、删除、遍历、修改、查值、合并
- 线性结构中的插入删除基本运算
- 线性表的顺序存储结构元素的获取,插入及删除
- 【数据结构】顺序线性表的插入、删除、合并实现
- 线性表的链式存储格式基本操作:创建链表、插入、删除、查找、求表长、打印链表
- C/C++学习(六)线性表的插入、删除和查找
- 自己写的线性结构的删除与插入
- 数据结构(线性表的操作:建立表,插入元素,删除元素,取元素,置空)
- 线性表的顺序存储格式基本操作:初始化、插入、删除、查找、打印
- 链式线性表的插入与删除
- 线性表的插入和删除
- 线性表之<顺序表sqlist>的储存及插入、删除-C代码实现
- 线性表的插入删除
- 数据结构之线性表的顺序存储结构(数组)的插入与删除
- 线性表之单向链表的创建、插入、删除和清除