简单的静态链表
来源:互联网 发布:网络汉语教师招聘 编辑:程序博客网 时间:2024/05/17 20:01
#ifndef __STATICLIST_#define __STATICLIST_#include<iostream>using namespace std;#define MAXSIZE 8#define ElemType inttypedef struct StaticListNode{ElemType data;int cur;}StaticListNode;typedef StaticListNode StaticList[MAXSIZE];void InitStaticList(StaticList &SL){SL[0].cur = -1;for(int i=1; i<MAXSIZE-1; ++i){SL[i].cur = i+1;}SL[MAXSIZE-1].cur = -1;}int Malloc_SL(StaticList &SL){if(SL[1].cur == -1)return -1;int i = SL[1].cur;SL[1].cur = SL[i].cur;return i;}void push_back(StaticList &SL, ElemType x){int i = Malloc_SL(SL);if(i == -1)return;SL[i].data = x;SL[i].cur = -1;int j = 0;while(SL[j].cur != -1){j = SL[j].cur;}SL[j].cur = i;}void push_front(StaticList &SL,ElemType x){int i = Malloc_SL(SL);if(i == -1)return; SL[i].data = x;int j=SL[0].cur;SL[0].cur=i;SL[i].cur = j;}void pop_back(StaticList &SL){ int i=SL[0].cur;int j=SL[i].cur;while(SL[j].cur!=-1){i=SL[i].cur; j=SL[j].cur;} SL[i].cur=-1;SL[j].data=NULL;}void pop_front(StaticList &SL){int i=SL[0].cur;SL[0].cur=SL[i].cur;SL[i].data=NULL;}void show_list(StaticList &SL){for(int i=SL[0].cur; SL[i].cur!=-1; i=SL[i].cur){cout<<SL[i].data<<"-->";}cout<<SL[i].data<<"-->"<<"OK!"<<endl;}#endif
测试代码
#include"StaticList.h"void main(){StaticList SL;InitStaticList(SL);for(int i=1; i<6; i++){//push_front(SL,i);push_back(SL,i);}//push_front(SL,9);//push_back(SL,78);show_list(SL); // pop_back(SL);pop_front(SL);show_list(SL);}
0 0
- 简单的静态链表
- 简单的静态链表
- 简单静态、动态链表的建立
- 静态链表的简单应用
- 静态链表的C++简单实现
- 静态链表--简单操作
- 简单处理班级同学的学习成绩--静态链表
- 静态邻接表的简单实现
- 静态顺序表实现简单的通讯录
- 静态顺序表的简单实现
- 静态顺序表接口的简单实现
- 简单静态链表与简单动态链表
- 简单的java静态导入
- 简单的静态代理模式
- 简单的html静态分页
- 最简单的静态分析
- 静态逆向简单的ELF
- 简单静态通讯录的实现
- QFileDialog 选择多个文件
- **FASPOT 功能简介**
- date and time
- 省电管理之电源电量显示分析JAVA层
- 4970 Killing Monsters(前缀和问题)(类线段树)
- 简单的静态链表
- C++派生类的构造函数和析构函数执行顺序及其构造形式
- 1024 -- A+B Problem
- Rsync实现服务器间文件数据同步配置详解!
- DJango — URL的Reverse和Resolve
- 1025 -- 487-3279
- 1026 -- 被3、5整除的数
- test
- 完成安装后执行某些程序