赞
踩
目录
顺序表的存储定义
typedef struct{ int *elem; int length; }SqList;
顺序表的初始化,构造一个空的顺序表
void InitList(SqList &L){ L.elem = new int[MAXSIZE]; L.length = 0; }
从键盘上依次输入21、18、30、75、42、56,创建顺序表。
void InputList(SqList &L,int n){ int i; for(i=0;i<n;i++){ scanf("%d",&L.elem[i]); L.length++; } }
输出顺序表中的各元素值。
void OutputList(SqList &L){ int i; for(i=0;i<n;i++){ printf("%d",&L.elem[i]); } }
分别在顺序表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出顺序表中的各元素值。
Status ListInsert (SqList &L,int i,int e){ if((i<1)||(i>L.length+1)) return ERROR; if(L.length==MAXSIZE) return ERROR; for(int j=L.length-1;j>i-1;j--) L.elem[j+1]=L.elem[j]; L.elem[i-1]=e; ++L.length; return OK; }
删除顺序表中的第6个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值。
Status ListDelete(SqList &L,int i){ if((i<1)||(i>L.length)) return ERROR; for(int j=i;j<L.length;j++) L.elem[j-1]=L.elem[j]; --L.length; return OK; }
取顺序表中的第5个数据元素和第7个数据元素。
Status GetElem(SqList L,int i,int e){ if(i<1||i>L.length) return ERROR; e = L,elem[i-1]; return OK; }
查找35,42是否在顺序表中,查找成功返回其位置信息,否则返回0。
Status LocatElem(SqList L,int e){ for(int i=0;i<L.length;i++){ if(L.elem[i]==e) return i+1; } return ERROR; }
单链表的存储定义
typedef struct LNode{ ElemType data; struct LNode *next; }LNOde,*LinkList;
从键盘上依次输入21、18、30、75、42、56,逆序创建单链表,并输出单链表中的各元素值。
void GreateList(LinkList &L,int n){ L=(LinkList)malloc(sizeof(LNode)); //L = new LNode; L->next = NULL; for(i=n;i>0;i--){ p = new LNode scanf("%d",&p->data); p->next = L->next; L->next = p; } } //GreateList
分别在单链表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出单链表中的各元素值。
Status ListInsert(LinkList &L,int i,ElemType e){ p=L; j=0; while(p&&j<i-1){ p=p->next; ++j; } if(!p||j>i-1) return ERROR; s = new LNode; s->data = e; s->next = p->next; p->next = s; return OK; }//LinkList
删除单链表中的第6个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值。(带头结点)
Status ListDelete(LinkList &L,int i,ElemType &e){ p=L; j=0; while(p->next&&j<i-1){ p=p->next; ++j; } if(!p||j>i-1) return ERROR; q = p->next; p->next = q->next; e = q->data; free(q); return OK; }
取单链表中的第5个数据元素和第7个数据元素(带头结点)
Status GetElem(LinkList L,int i,ElemType &e){ p = L->next; j=0; while(p&&j-1){ p=p->next; ++j; } if(!p||j>i) return ERROR; else e=p->data; return OK; }//GetElem
在单链表中查找值为30和90的数据元素。
Statue Locate(Linklist L,int e){ p = L->next; j=0; while(p&&p->data!=e){ p=p->next; ++j; } if(p) return j; else return ERROR; } //LocateElem L
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。