第三周 顺序表的应用(1)
来源:互联网 发布:a卡优化的单机游戏 编辑:程序博客网 时间:2024/05/17 01:33
/*
* Copyright (c) 2015, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:main.cpp,list.cpp,list.h
* 作 者:于东林
* 完成日期:2015年9月21日
* 版本号:3.7.0
* 问题描述:删除在【x,y】之间的所有元素并且保证时间复杂度为O(n),空间复杂度为O(1)
* 输入描述:无
* 程序输出:删除后的结果
*/
程序及代码:
#include <stdio.h> #include <malloc.h> #define MaxSize 50 typedef int ElemType; typedef struct { ElemType data[MaxSize]; int length; }SqList; void CreateList(SqList *&L,ElemType a[],int n); void DispList(SqList *L); void delx2y(SqList *&L, ElemType x, ElemType y);
#include"tt.h" void CreateList(SqList *&L,ElemType a[],int n) { int i; L=(SqList *)malloc(sizeof(SqList)); for(i=0;i<n;i++) L->data[i]=a[i]; L->length=n; } void DispList(SqList *L) { int i; for(i=0;i<L->length;i++) printf("%d ",L->data[i]); printf("\n"); } //删除线性表中,元素值在x到y之间的元素 void delx2y(SqList *&L, ElemType x, ElemType y) { int k=0,i; //k记录非x的元素个数 ElemType t; if(x>y) { t=x; x=y; y=t; } for (i=0; i<L->length; i++) if (L->data[i]<x || L->data[i]>y ) //复制不在[x, y]之间的元素 { L->data[k]=L->data[i]; k++; } L->length=k; }
#include"tt.h" int main() { SqList *sq; ElemType a[10]= {5,8,7,0,2,4,9,6,7,3}; CreateList(sq, a, 10); printf("删除前 "); DispList(sq); delx2y(sq, 4, 7); printf("删除后 "); DispList(sq); return 0; }
运行结果:
知识点及总结:
用到了循环和删除线性表中的元素。
学习心得:
线性表的运算,删除元素,都是十分巨大的收获。
0 0
- 第三周 顺序表的应用(1)
- 第三周 顺序表的应用(2)
- 第三周 顺序表的应用
- 第三周 顺序表的应用
- 第三周顺序表的应用(1)
- 第三周 项目四 顺序表的应用1 (。。)
- 第三周 项目四 顺序表的应用1
- (第三周项目4)顺序表的应用(1)
- 第三周项目四 顺序表的应用1
- 第三周项目四--顺序表的应用1
- 第三周 项目4-顺序表的应用(1)
- 第三周 项目4--顺序表的应用(1)
- 第三周 项目四 顺序表的应用(1)
- 第三周--顺序表应用1
- 第三周 顺序表应用
- 第三周项目4-顺序表的应用
- 第三周项目4(2)顺序表的应用
- 第三周——项目4顺序表的应用
- Java 异步处理简单实践
- nvidia显卡上OpenCL的hello world程序
- Hibernate(六)——多对多关联映射
- 委托使用示例
- 第三周项目二 建设“顺序表”算法库
- 第三周 顺序表的应用(1)
- log4j配置
- 数据挖掘十大经典算法之:决策树C4.5 分类算法
- 修改苹果自带地图中的路线颜色
- Hibernate(五)——一对多单向关联映射
- BZOJ 2086 [Poi2010]Blocks 单调栈
- 第3周 项目3 - 求集合并集
- 数据结构实践——集合合并
- MongoDB 的安装和使用