删除线性表L中第i个元素起的k个元素
2012-09-23 19:20
274 查看
这应该是数据结构的题目吧。这题是上课时我同学和我讨论的,当时没用线性表,只是用数组(栈)解决了。现在改用线性表试试,还不是很熟悉。
code:
code:
#include<stdio.h> #include<stdlib.h> //或者是 #include<malloc.h> 的头文件 #define N 10 struct Sqlist { int *elem; int length; int listsize; }L; int DeleteK(struct Sqlist *L, int j, int k) { int i; for(i = 0; i <= L->length-j-k; i++) //i=0,而不是i=1,因为第i个是起始元素 L->elem[i+j-1] = L->elem[j+k+i-1]; L->length -= k; return 0; } int main() { int i, j, k; L.listsize = N; L.elem = (int *)malloc(sizeof(int) * L.listsize); //申请listsize个大小为整型(int)字节的空间 printf("输入原始线性表:\n"); for(i = 0; i < N ;i++) scanf("%d", &L.elem[i]); L.length = L.listsize; printf("\n输入起始位置:"); scanf("%d", &j); printf("\n输入要删除元素的个数:"); scanf("%d", &k); DeleteK(&L, j, k); for(i = 0; i < N-k; i++) printf("%d ", L.elem[i]); return 0; }
相关文章推荐
- hdu5336 XYZ and Drops (模拟+vector删除第i个元素)
- 用C#实现单链表(取第i个结点元素,删除第i个结点)
- 删去单链表中第i个节点的操作。删除单链表中数据域为x的前驱元素。数据结构。
- 编写一个算法,从顺序表中删除自第i个元素开始的k个元素
- 设计一个算法,删除一个顺序表中从第i个元素开始的k个元素。
- 数据结构的一些基本操作(在表L中插入第i个元素e. 操作成功返回OK,失败时返回ERROR,删除表L中第i个元素,结果用e返回. 操作成功返回OK,失败时返回ERROR)
- 试设计一个算法,删除一个顺序表从第i个元素开始的k个元素
- 从la中删除字第i个元素起共len个元素后,将他们插入到表lb中第j个元素之前
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- [置顶] C++中的list容器如何插入和删除第i个元素
- 数据结构之单链表删除第i个元素并用e返回其值的算法
- 删除线性表第i个元素开始的k个元素
- 单链表在不知头结点的情况下对第i个元素的删除
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- foreach遍历list删除元素一定会报错?
- Java 遍历Map时 删除元素
- 蓝桥杯 - 算法训练 - 删除数组零元素 - Java
- ie浏览器下删除父元素的父元素(祖父元素)-----remove()方法在ie下失效的解决方法
- 重复元素的删除
- (LeetCode)Remove Linked List Elements --- 删除节点元素