} free(pNew); total=total+count; return pHead; }
// 判断L是否为空表 void ListEmpty(LinkList L) { if(NULL==L->next) printf(\此表为空表!\\n\ else printf(\此表不为空表!\\n\}
// 在链式线性表中第i个元素前插入新元素e void ListInsert(LinkList L,int i,int e) { LinkList p; LinkList s; p=L; int j=0; while(p&&j
// 输出链式线性表
void ShowList(LinkList L) { LinkList p; p=L->next; if(p==NULL) printf(\此表为空表!\\n\ else
11
while(p) { printf(\ \ p=p->next; } printf(\}
// 在链式线性表中删除第i个元素,并用e返回其值 void ListDelete(LinkList L,int i,int &e) { LinkList p; LinkList q; p=L; int j=0; while(p->next && j
// 用e返回L中第i个数据元素的值 void GetList(LinkList L,int i,int &e) { LinkList p; p=L->next; int j=0; while(p->next && j
12
}
// 对比a与b相等 bool compare(int a,int b) { if(a==b) return 1; else return 0; }
// 在链式线性表L中查找第1个值与e满足compare()d元素的位序 void LocateElem(LinkList L,int e) { int i=0; LinkList p; p=L; while(p->next && !compare(p->data,e)) { p=p->next; i++; } if(NULL==p->next) { if(0==compare(p->data,e)) printf(\没有该元素!\\n\ else printf(\第1个与e相等的元素的位序为%d\\n\ } else if(compare(p->data,e)) printf(\没有该元素!\\n\}
LinkList MergeList_L(LinkList La,LinkList Lb) { int i,j,k; LinkList pa_1,pb_1,pa_2,pb_2,pc,pd; pa_1=La->next; pc=pa_2=La; pb_1=pb_2=Lb->next; if(pa_1->data > pb_1->data) { pc=pa_2=Lb; pa_1=Lb->next; pb_1=pb_2=La->next;
13
}
}
while(pa_1 && pb_1) { if(pa_1->data >= pb_1->data) { pa_2->next=pb_1; pb_2=pb_1->next; pb_1->next=pa_1; pb_1=pb_2; pa_2=pa_2->next; } else { pa_1=pa_1->next; pa_2=pa_2->next; } }
if(pb_1) pa_2->next=pb_1;
pd=(LinkList)malloc(sizeof(struct LNode)); pd->next=NULL; pa_2=pd; k=total;
for(i=0;i
pa_2->next=NULL; return pd;
14
2.流程图(实验要求1和3)
开始输入nWhile(n)Yswitch(n)N1创建线性表 La2判断L是否为空表345定位元素6取元素7输出线性表8创建线性表Lb9归并为一个线性表La插入元素删除元素menu();scanf(\开始
图1 主函数流程图
开始L->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int))YNULL==L->elemNL->length=0;L->listsize=LIST_INIT_SIZE;printf(\输入顺序表a:\\n\scanf(\;Nwhile(n)YL->elem[i]=n;i++;L->length++;L->listsize=L->listsize-4;scanf(\结束
图2创建线性表La流程图
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言数据结构线性表的基本操作实验报告(3)在线全文阅读。
相关推荐: