数据结构顺序链表

上传人:kms****20 文档编号:41294627 上传时间:2018-05-29 格式:DOC 页数:7 大小:29.50KB
返回 下载 相关 举报
数据结构顺序链表_第1页
第1页 / 共7页
数据结构顺序链表_第2页
第2页 / 共7页
数据结构顺序链表_第3页
第3页 / 共7页
数据结构顺序链表_第4页
第4页 / 共7页
数据结构顺序链表_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数据结构顺序链表》由会员分享,可在线阅读,更多相关《数据结构顺序链表(7页珍藏版)》请在金锄头文库上搜索。

1、数据结构顺序链表数据结构顺序链表1.编写头文件。定义数据类型。分别写各个函数如ListInsern_Sq,ListDelete_Sq,LocateElem 等函数。2.编写主函数。在主函数里构造空的线性表,然后利用 ListInsert函数使用户初始化线性表。然后调用函数操作,操作结果用 PrintList_Sq 打印出线性表的内容3.运行程序,完整代码见下:- 2 -/data struct 实验一 线性表基本操作 1#include#include/#include/using namespace std;#define TRUE 1#define FALSE 0#define OK 1#

2、define ERROR 0#define YES 1#define NO 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType;#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef structElemType *elem;int length;int listsize;SqList;Status cmp(ElemType a,ElemType b)if(a=b)return YES;elsereturn NO;Status

3、 InitList_Sq(SqList if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;return OK;Status Destroy_Sq(SqList L.elem=NULL;L.length=0;L.listsize=0;- 3 -return OK;Status ClearList_Sq(SqList /memset(L,0,sizeof(L);return OK;Status ListInsert_Sq(SqList if (i L.length+1) return ERROR;if (L.length

4、= L.listsize)ElemType *newbase = (ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof (ElemType);if (!newbase) return ERROR;L.elem = newbase;L.listsize += LISTINCREMENT;ElemType *q = for (p = p=q; -p) *(p+1) = *p;*q = e;+L.length;return OK;Status ListDelete_Sq(SqList if (iL.length) return ER

5、ROR;p = e = *p;q = L.elem+L.length-1;for (+p; p=q; +p) *(p-1) = *p;-L.length;return OK; / ListDelete_SqStatus LocateElem_Sq(SqList L, ElemType e,Status (*compare)(ElemType, ElemType) / 在顺序线性表 L 中查找第 1 个值与 e 满足 compare()的元素的位序int i;ElemType *p;i = 1;p = L.elem;- 4 -while (i = L.length if (i = L.lengt

6、h) return i;else return 0;void PrintList_Sq(SqList L)int i;for(i=0;iL.length;i+)printf(“%d “,L.elemi);printf(“n“);int main()SqList La;int i,n,e;printf(“请输入元素个数:n“);scanf(“%d“,if(InitList_Sq(La)for(i=1;i=n;i+)scanf(“%d“,ListInsert_Sq(La,i,e);printf(“-n 你输入的元素分别为:n“);PrintList_Sq(La);printf(“-n“);else

7、printf(“初始化线性表出错!n“);printf(“-n“);printf(“请输入你要插入的元素及插入的位置:n“);/插入元素scanf(“%d%d“,if(ListInsert_Sq(La,i,e)printf(“插入元素后线性表为:n“);PrintList_Sq(La);printf(“-n“);- 5 -elseprintf(“输入位置有错!n“);printf(“-n“);/*/printf(“请输入你要删除的元素的位置:n“);/删除元素scanf(“%d“,if(ListDelete_Sq(La,i,e)printf(“你删除的元素为:%d,删除元素后线性表为:n“,e

8、);PrintList_Sq(La);printf(“-n“);elseprintf(“输入位置有错!n“);printf(“-n“);printf(“请输入你要查找的元素:n“);/查找元素scanf(“%d“,if(i=LocateElem_Sq(La,e,cmp)printf(“你要查找的元素在第%d 个位置。n“,i);printf(“-n“);elseprintf(“找不到这个元素:n“);printf(“-n“);if(ClearList_Sq(La)/清空线性表printf(“线性表已清空。n“);printf(“-n“);elseprintf(“线性表清空出错。n“);printf(“-n“);if(Destroy_Sq(La)/撤销线性表- 6 -printf(“线性表已撤销。n“);printf(“-n“);elseprintf(“线性表清空出错。n“);printf(“-n“);return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号