数据结构学习笔记
来源:互联网 发布:linux php posix扩展 编辑:程序博客网 时间:2024/06/01 18:46
数据结构学习笔记之②——线性表
定义:零个或多个数据元素的有限序列。
线性表的顺序存储结构及基本操作
#define MAXSIZE 20typedef int ElemType;typedef int Status;//用于返回操作状态//@线性表顺序存储typedef struct{ ElemType data[MAXSIZE]; int length;}SqList;Status GetElem(SqList L,int i,ElemType *e)//获取元素值{ if(L.length==0||i<1||i>L.length) return 0; *e=L.data[i-1]; return 1;}Status ListInsert(SqList *L,int i,ElemType e)//插结点{ int k ; if (L->length==MAXSIZE) return 0; if (i<1||i>L->length+1) return 0; if(i<=L->length) { for(k=L->length-1;k>=i-1;k--) L->data[k+1]=L->data[k]; } L->data[i-1]=e; L->length++; return 1;}Status ListDelete(SqList *L,int i,ElemType *e)//删结点{ int k; if (L->length==0) return 0; if(i<1 || i>L->length) return 0; *e=L->data[i-1];//用e返回要删除的节点值 if(i<L->length) { for(k=i;k<L->length;k++) L->data[k-1]=L->data[k]; } L->length--; return 1;}
线性表的链式存储结构及基本操作
#define MAXSIZE 20typedef int ElemType;typedef int Status;//用于返回操作状态//@ 线性表链式存储typedef struct Node{ ElemType data; struct Node *next;}Node;typedef struct Node *LinkList;Status GetElem(LinkList L,int i,ElemType *e){ int j; LinkList p; p=L->next; j=1; while(p&&j<i) { p=p->next; ++j; } if(!p||j>i) return 0; *e=p->data; return 1;}Status ListInsert(LinkList *L,int i,ElemType e){ int j; LinkList p,s; p=*L; j=1; while(p&&j<i) { p=p->next; ++j; } if(!p||j<i) return 0; s=(LinkList)malloc (sizeof(Node)); s->data=e; s->next=p->next; p->next=s; return 1;}Status ListDelete(LinkList *L,int i,ElemType *e){ int j; LinkList p,q; p=*L; j=1; while (p->next&&j<i) { p=p->next; ++j; } if(!(p->next)||j>i) return 0; q=p->next; //***此处先 q=p->next,再让 p->next=q->next,而不是直接让p->next=p->next->next,是为了之后可以释放删除点的内存*** p->next=q->next; *e=q->data; free(q); return 1;}
0 0
- 数据结构学习笔记
- 数据结构学习笔记(一)
- 数据结构学习笔记--前言
- 数据结构学习笔记--迷宫
- 数据结构学习笔记
- Java数据结构 学习笔记
- 数据结构学习笔记
- 数据结构学习笔记
- 数据结构学习笔记
- 数据结构学习笔记1
- 数据结构学习笔记一
- 数据结构学习笔记二
- 数据结构学习笔记三
- 数据结构学习笔记(1)
- 《数据结构》学习笔记12
- 《数据结构》学习笔记 16
- 数据结构学习笔记 --- 前言
- 数据结构学习笔记
- C++对象的内存分析(4)
- KMP(最小循环节)
- OOP面向对象——实例——电梯类
- Fragment销毁之后Editext状态的清除
- Java数据类型及equals、==区别
- 数据结构学习笔记
- ubuntu移植jsoncpp到Android平台
- C++对象的内存分析(5)
- leetcode-217. Contains Duplicate
- Android Looper和Handler
- Android消息推送(二)--基于MQTT协议实现的推送功能
- scala进阶7-类型约束
- HTML5从入门到精通
- C++对象的内存分析(6)