数据结构(C语言版) 线性表顺序表示与实现
来源:互联网 发布:电脑管家mac版 编辑:程序博客网 时间:2024/04/30 16:48
终极版
#include <cstdlib>#include <cstdio>#include <iostream>#include <windows.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define LIST_INIT_SIZE 100#define LISTINCREMENT 10//Status是函数的类型,其值是函数结果状态代码typedef int Status;typedef int ElemType;typedef struct{ ElemType *elem; int length; int listsize;}SqList;using namespace std;Status InitList(SqList &L){ L.elem=(ElemType *) malloc(LIST_INIT_SIZE*sizeof(ElemType)); if (!L.elem) exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; return OK;}Status ListInsert_Sq(SqList &L, int i, ElemType e) { ElemType *newbase, *p,*q; if (i<1||i>L.length+1) return ERROR; if (L.length>=L.listsize) { newbase = (ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof(ElemType)) ; if (!newbase) exit (OVERFLOW); L.elem = newbase; L.listsize=L.listsize+LISTINCREMENT; } q=&(L.elem[i-1]); for (p=&(L.elem[L.length-1]);p>=q; --p) *(p+1)=*p; *q=e; L.length++; return OK; }Status ListDelete_Sq(SqList &L, int i, ElemType &e) { ElemType *p,*q; if ((i<1)||i>L.length) return ERROR; p=&L.elem[i-1]; e=*p; q=L.elem+L.length-1; for (++p; p<=q; ++p) *(p-1)=*p; --L.length; return OK;} //ListDelete_SqStatus out(SqList L){ cout << "该链表中含有的元素:" << endl; for(int i = 0;i < L.length;i++) cout << L.elem[i] << " " ; cout << endl;}Status in(SqList &L, int i){ cout << "请依次" << i << "个输入数据" << endl; for(int j = 0;j < i; j++) cin >> L.elem[j]; L.length = i; return OK;}int main(){ SqList L; InitList(L); while(1) { int i = 0; cout << "请选择操作:" << endl << "1.输入数据" << " " << "2.插入数据" << " " << "3.删除数据" << " " << "4.输出" << " " <<"5.结束"<< endl; cin >> i; if(i == 1){ int num = 0; cout << "请输入需要输入的个数:" << endl; cin >> num; in(L,num); } if(i == 2){ int h,e; cout << "请输入插入位置和插入元素:" << endl; cin >> h >> e; ListInsert_Sq(L,h,e); } if(i == 3){ int h,e; cout << "请输入删除位置:" << endl; cin >> h; ListDelete_Sq(L, h, e); } if(i == 4){ out(L); } if(i == 5) break; cout << "任意键进行下一步:\n"; getchar(); getchar(); system("cls"); } cout << "game over" << endl; return 0;}
第一次写线性表,错了好几次,对函数里的特殊名称必须看着课本打,宏定义不会用,空格加一个,vc加多了过不了;
typedef int ElemType这条语句错三次,改了好几次,最后替换成int,再改回去编译过了,,,,,ZZ(回头问问老师)
#include <cstdlib>#include <iostream>#define TRUE 1 #define FALSE 0 // 正错#define OK 1#define ERROR 0 //状态#define INFEASIBLE -1 //不可行#define OVERFLOW -2 //溢出#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量#define LISTINCREMENT 10 // 线性表存储空间的分配增量// 一些常用表示typedef int ElemType; //类型,可改为 double ,long long、、、、typedef int Status; //状态typedef struct{int * elem; //存储空间基址int length; //当前长度int listsize; //当前分配的存储容量(以sizeof(Elemtype)为单位)}SqList; Status InitList(SqList &L){L.elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));//分配一个ElemType类型的LIST_INIT_SIZE长度的动态空间if(!L.elem) exit(OVERFLOW);//检查分配L.length = 0;//将当前长度赋值为0L.listsize = LIST_INIT_SIZE;//初始存储容量return OK;//创建成功,返回状态}using namespace std;int main(){SqList L;//定义一个链表InitList(L);//调用函数InitListreturn 0;}
0 0
- 数据结构(C语言版) 线性表顺序表示与实现
- [自学《数据结构(C语言版)》] C中顺序线性表的实现(一)
- 数据结构(C语言版)第二章顺序线性表的实现
- 重温数据结构-线性表的顺序表示与实现
- 数据结构—线性表的顺序表示与实现
- 《数据结构》---线性表的顺序表示与实现
- 数据结构 线性表 顺序表示和实现
- 数据结构算法代码实现——线性表的顺序表示与实现(二)
- 【数据结构】顺序存储结构线性表C语言版
- 学习笔记------数据结构(C语言版) 线性表顺序存储
- 数据结构之线性表(C语言版)
- 《数据结构(C语言版)》- 线性表
- 数据结构(c语言版)之顺序表
- 数据结构(C语言版)第一章 抽象数据类型的表示与实现
- 线性表的顺序表示与实现
- 线性表的顺序表示与实现
- 线性表之顺序表示与实现
- 线性表的顺序表示与实现
- 链表反转C++
- 指针中星号的位置问题
- java的System.getProperty()方法详解
- 代理模式的扩展
- redis 在Java中使用
- 数据结构(C语言版) 线性表顺序表示与实现
- 在TP-LINK WR841N v7上安装OpenWrt和U-Boot/Breed教程
- jobdu1021字符统计
- android程序员养成记录----------开篇(写给自己的话)
- 一天一个设计模式---工厂方法模式
- 第二周 项目3(1)-体验复杂度 两种排序算法的运行时间
- 【一点点心得】 旧版ARToolkit和openCV整合问题
- AndroidSDK Support自带夜间、日间模式切换详解
- Longest Substring Without Repeating Characters(medium)