数据结构 第三季(part 1)
来源:互联网 发布:流星网络电视2.88注册 编辑:程序博客网 时间:2024/04/28 00:20
//线性表:零个或多个数据元素的有限序列//线性表的//ADT:/*Data线性表的数据对象集合为{a1,a2,....,an},每个元素的类型均为DataType,其中,除第一个元素之外,都有且只有一个前驱元素,除最后一个元素之外,有且只有一个直接后继元素。 Operation InitList(*L); ListEmpty(L); ClearList(*L); GetElem(L,i,*e); LocateElem(L,e); ListInsert(*L,i,e); ListDelete(*L,i,*e); ListLength(L);*/ //endADT//求La与Lb的并void union(List *La,List Lb){int La_len,Lb_len,i;ElemType e;La_len = ListLength(La);Lb_len = ListLength(Lb);for(i=1;i<Lb_len;i++){GetElem(Lb,i,e);if(!LocateElem(La,e)){ListInsert(La,++La_len,e);}}}
#define MAXSIZE 20typedef int ElemType;typedef struct{ElemType data[MAXSIZE];int length;}SqList;
#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;#include <stdio.h>Status GetElem(SqList L,int i,ElemType *e){//查询操作if(L.length==0|| i<1 ||i>L.length)return ERROR;*e = L.data[i-1];return OK;}Status ListInsert(SqList *L,int i,ElemType e){//插入操作int k;if(L->length == MAXSIZE)return ERROR;if(i<1||i>L->length+1 )return ERROR;if(i<=L->length){for(k=L->length;k>=i-1;k--)L->data[k+1] = L->data[k];}L->data[i-1] = e;L->length++;return OK;}Status ListDelete(SqList *L,int i,ElemType *e){//删除元素int k;if(L->length==0)return ERROR;if(i<0||i>L->length)return ERROR;*e = L->data[i-1];for(k=i-1;i<L->length-1;i++)L->data[k]=L->data[k+1];return OK;}int ListLength(SqList L){//链表长度return L.length;}int LocateElem(SqList L,ElemType e){//元素定位int k;for(k=0;k<L.length;k++){if(e==L.data[k])return k+1;}return 0;}void ClearList(SqList *L){//清除列表 int k; for(k=0;k<L->length;k++) L->data[k]=0; L->length = 0;}Status ListEmpty(SqList L){//判断是否为空列表if(L.length == 0)return TRUE;elsereturn FALSE;}Status InitList(SqList *L){int i;printf("请输入线性列表长度:\n");scanf("%d",&i);if(i<0||i>MAXSIZE)return ERROR;L->length = i;for(int k=0;k<L->length;k++){printf("还需输入(%d)个元素......\n",(L->length-k));scanf("%d",&L->data[k]);}return OK;}
#include "3_2.h"#include "3_2b.h"//线性表:零个或多个数据元素的有限序列//线性表的//ADT:/*Data线性表的数据对象集合为{a1,a2,....,an},每个元素的类型均为DataType,其中,除第一个元素之外,都有且只有一个前驱元素,除最后一个元素之外,有且只有一个直接后继元素。 Operation InitList(*L); ListEmpty(L); ClearList(*L); GetElem(L,i,*e); LocateElem(L,e); ListInsert(*L,i,e); ListDelete(*L,i,*e); ListLength(L);*/ //endADTint main(){SqList L;InitList(&L);printf("线性链表是否为空?是(1)否(0):%d\n",ListEmpty(L));printf("线性表的长度:%d\n",ListLength(L));printf("现在清空线性表......\n");ClearList(&L);printf("线性链表是否为空?是(1)否(0):%d\n",ListEmpty(L));printf("线性表的长度:%d\n",ListLength(L));ListInsert(&L,1,1);printf("线性链表是否为空?是(1)否(0):%d\n",ListEmpty(L));printf("线性表的长度:%d\n",ListLength(L));return 0;}
0 0
- 数据结构 第三季(part 1)
- 数据结构 第三季(part 2)
- 数据结构 第三季(part 3)
- 《机器学习实战》读书笔记 第三章 决策树(part 1)
- 20170220 Part 1 数据结构及算法(一)
- 2017222 Part 1 数据结构及算法(二)
- 数据结构基础学习笔记 part 1
- 跟着Andrew Ng挑战Machine Learning(第三周)Part 1:逻辑回归简介
- 数据结构第三周项目1
- 第三部分 数据结构(二)
- [翻译]C#数据结构与算法 – 第五章栈与队列(Part 1)
- 数据结构——第三讲、树(上)(1)
- getting start with storm 翻译 第三章 part-1
- 《机器学习实战》读书笔记 第三章 决策树(part 3)
- Drawable Resources Part III(Drawable 资源 第三部分)
- Collection (part 1)
- chapter1(part 1)
- AngularJs(Part 1)
- poj 2299 Ultra-QuickSort
- 试用配置管理库typesafe.config
- 村民拆房致两人被埋 陕西大荔消防速救
- 备忘
- MSSQL之游标的用法
- 数据结构 第三季(part 1)
- CVPR2010 Paper Gestalt
- Floodlight Mininet自定义拓扑及自定义流表
- 理解STM32的中断优先级
- onTouchEvent方法的使用
- 多线程-2
- h264 正确的抛帧机制 保证不花屏
- EL表达式截取字符串
- shell编程学习