资源简介
华中科技大学_实验报告_基于链式存储结构实现线性表的基本运算

代码片段和文件信息
#include
#include
#include
/*---------page 10 on textbook ---------*/
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASTABLE -1
#define OVERFLOW -2
typedef int status;
typedef int ElemType; //数据元素类型定义
/*-------page 22 on textbook -------*/
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct ListNode { //顺序表(顺序结构)的定义
ElemType data;
struct ListNode *next;
}ListNode*pListNode;
int e;
ListNode L;
pListNode pL = &L;
status IntiaList(pListNode &Lp) {
Lp = (pListNode)malloc(sizeof(ListNode));
Lp->data = 0;
Lp->next = NULL;
pL = Lp;
return OK;
}
status DestroyList(pListNode &Lp) {
if (!Lp)return ERROR;
Lp->data = 0;
if (Lp->next == NULL)
{
free(Lp->next);
free(Lp);
}
else
{
DestroyList(Lp->next);
Lp->next = NULL;
free(Lp);
}
return OK;
}
status ClearList(pListNode &Lp) {
if (!Lp)return ERROR;
Lp->data = 0;
if (Lp->next == NULL)
{
free(Lp);
}
else
{
ClearList(Lp->next);
free(Lp);
}
return OK;
}
status ListEmpty(ListNode L) {
if (L.data == 0)
return TRUE;
else
return FALSE;
}
int ListLength(ListNode L) {
return L.data;
}
status GetElem(ListNode L int i ElemType *e) {
if (i<1 || i>L.data)
return ERROR;
pListNode p = L.next;
while (--i)
{
p = p->next;
}
(*e) = p->data;
return OK;
}
status compare(ElemType e ElemType f)
{
if (f == e)return TRUE;
else return FALSE;
}
status LocateElem(ListNode L ElemType e status(*comparep)(ElemType e ElemType f))
{
if (L.next == NULL)
return ERROR;
pListNode p = L.next;
int i = 1;
while (p)
{
if ((*comparep)(e p->data))
return i;
else
{
i++;
p = p->next;
}
}
return 0;
}
status PriorElem(ListNode L ElemType cur_e ElemType* pre_e)
{
if (L.data == 0)
return ERROR;
if (L.next->data == cur_e)
return ERROR;
pListNode pri_p = L.next cur_p = L.next->next;
while ((cur_p->data != cur_e) && cur_p)
{
pri_p = cur_p;
cur_p = cur_p->next;
}
if (cur_p->data == cur_e)
{
*pre_e = pri_p->data;
return OK;
}
else return ERROR;
}
status NextElem(ListNode L ElemType cur_e ElemType* next_e)
{
if (L.next == 0)
return ERROR;
pListNode p = L.next;
while (p->data != cur_e && p->next)
p = p->next;
if (!(p->next))return ERROR;
else //if(p->data == cur_e)
{
*next_e = p->next->data;
return OK;
}
}
status ListInsert(pListNode Lp int i ElemType e) {
if (i<1 || i>Lp->data + 1)
return ERROR;
pListNode p = (pListNode)malloc(sizeof(ListNode));
if (Lp->data == 0) {
Lp->next = p;
p->data = e;
p->next = NULL;
Lp->data = 1;
return OK;
}
pListNode p1 = Lp->next;
while (p1->next)p1 = p1->next;
p1->next = p;
p->data = e;
p->next = NULL;
Lp->data++;
return OK;
}
status ListDelete(pListNode Lp int i ElemType* e)
{
if (Lp->data)
{
if (i<1 || i>Lp->data)
return ERROR;
p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1118 2016-05-28 23:13 2 基于链式存储结构实现线性表的基本运算\Makefile.win
文件 7879 2016-06-12 00:42 2 基于链式存储结构实现线性表的基本运算\main.cpp
文件 138486 2016-06-12 00:53 2 基于链式存储结构实现线性表的基本运算\main.exe
文件 9596 2016-05-28 23:13 2 基于链式存储结构实现线性表的基本运算\main.o
文件 960 2016-05-28 23:09 2 基于链式存储结构实现线性表的基本运算\基于链式存储结构实现线性表的基本运算.dev
文件 138486 2016-05-28 23:13 2 基于链式存储结构实现线性表的基本运算\基于链式存储结构实现线性表的基本运算.exe
文件 97 2016-05-28 23:14 2 基于链式存储结构实现线性表的基本运算\基于链式存储结构实现线性表的基本运算.layout
目录 0 2016-06-12 00:53 2 基于链式存储结构实现线性表的基本运算\
- 上一篇:微机原理课程设计---密码键盘
- 下一篇:影像融合与融合精度评价源码
相关资源
- 数学建模实验报告(八个全)
- 数字逻辑与数字系统实验报告
- 多媒体综合设计报告(附作品)
- ubuntu9.10 可加载内核模块和字符设备驱
- 操作系统 LRU算法 实验报告 及 程序代
- 迈克尔逊干涉仪的调整与使用实验报
- 利用启发式搜索解决八数码难题程序
- 比较两个字符串大小汇编语言源代码
- linux实验报告及心得体会
- 数据结构实验-魔王语言-源码加实验报
- 2FSK2PSK信号产生器实验实验报告
- 软件工程课程设计【网上选课系统】
- 表达式求值C 代码(附实验报告)
- 操作系统教程课后答案华中科技大学
- 湖南大学操作系统实验报告
- 华中科技大学算法实验
- 哈夫曼树编码和译码实验报告+运行视
- 哈工大威海-嵌入式实验报告答案
- 银行储蓄系统实验报告
- 操作系统实验报告哲学家就餐问题、
- 北航研究生计网实验报告.rar
- PS作业 实验报告 11
- 华中科技大学824信号与系统资料.zip
- 数据结构算术表达式求值实验报告
- 哈工大威海编译原理实验报告和源代
- 哈工大威海-编译原理实验报告和源码
- 软件项目管理实验报告
- 数字图像处理课程设计 实验报告
- 河北工业大学编译原理实验代码及实
- 东北大学软件学院编译方法两次实验
评论
共有 条评论