您的位置:首页 > 其它

删除线性表L中第i个元素起的k个元素

2012-09-23 19:20 274 查看
这应该是数据结构的题目吧。这题是上课时我同学和我讨论的,当时没用线性表,只是用数组(栈)解决了。现在改用线性表试试,还不是很熟悉。

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐