好文档 - 专业文书写作范文服务资料分享网站

数据结构 清华大学出版社 严蔚敏吴伟民编著

天下 分享 时间: 加入收藏 我要投稿 点赞

for(i=1;i<=lb->length;i++) }

void unionSort(sqlist *la,sqlist *lb,sqlist *lc)//已知两个有序表La和Lb,把两个有序表合并成仍然有序的线性表Lc. {

int i,j=0,t;

for(i=0;ilength;i++) {

lc->computer[i]=la->computer[i]; lc->length=la->length; }

for(i=la->length;i<(la->length+lb->length);i++) { }

lc->computer[i]=lb->computer[j]; lc->length=lc->length+1; j++;

{ }

e=Select1(lb,i); j=Select2(la,e); if(j==0) {

la->computer[la->length]=e; la->length=la->length+1; }

for(i=0;ilength;i++)

for(j=i+1;jlength;j++) {

if (lc->computer[i]>lc->computer[j])

}

{t=lc->computer[i];lc->computer[i]=lc->computer[j];lc->computer[j]=t;} }

int main() {

sqlist la,lb,lc;

printf(\请输入la的值 :\\n\initlist(&la);

printf(\输出la的值 :\\n\outputlist(&la);

printf(\请输入lb的值:\\n\initlist(&lb);

printf(\输出lb的值 :\\n\

outputlist(&lb); int choiceNumber; char whetherContinue='Y';

while(whetherContinue!='N' && whetherContinue!='n') {

printf(\printf(\实现la中的功能:\\n\

printf(\插入\\n\printf(\删除\\n\

printf(\输入你想选择的位置\\n\printf(\输入你想选择的值\\n\printf(\合并la和lb\\n\printf(\合成一个新的线性表:\\n\printf(\请输入你要执行的功能: \scanf(\getchar();

printf(\

switch(choiceNumber) { case 1:

{ }

int insertPosition,insertValue; printf(\请输入所插入的位置和值:\\n\scanf(\getchar();

Insert(&la,insertPosition,insertValue);outputlist(&la);break;

case 2:

{

int deletePosition;

printf(\输入你所删除的位置:\\n\

scanf(\

}

getchar();

Delete(&la,deletePosition);outputlist(&la);break;

case 3:

{ }

int selectPosition;

printf(\输入你想选择的位置:\\n\scanf(\getchar();

printf(\值是:%d\\n\break;

case 4:

{

int selectValue;

}

printf(\输入你想选择的值:\\n\scanf(\getchar();

printf(\位置是:%d\\n\

case 5:Union(&la,&lb);outputlist(&la);break;

case 6: unionSort(&la,&lb,&lc);outputlist(&lc);break; default:printf(\}

printf(\

scanf(\ }

二、链式储存结构

1、单链表的基本操作的实现:建表、插入、删除、查找。

当我们要在线性表的链式存储结构上的第i个位置上插入一个元素时,只需修改第 i-1个元素结点的指针和新元素结点指针便可完成插入;若要删除第i个元素时,也只需修改第 i-1个元素的指针就行。 2、两个线性表的合并运算

已知线性表La和Lb,求La=La∩Lb。

3、已知两个有序表La和Lb,把两个有序表合并成仍然有序的线性表Lc. 源程序代码:

#include #include #define Null 0

//链式存储的数据结构的定义 typedef struct node{ int data;

struct node *next; } NODE;

NODE *Create()////用头插法建立带头节点的单链表 {

NODE *p,*head; int x;

getchar(); }

return 0;

head=(NODE *)malloc(sizeof(NODE)); head->next=NULL;

printf(\输入数据,-1 结束输入!\\n\ scanf(\ while(x!=-1){

p=(NODE *)malloc(sizeof(NODE)); p->data=x;

p->next=head->next; head->next=p; scanf(\ }

return(head); }

/*****************输出单链表各元素的值*************************/ void Output(NODE *head){ NODE *p; p=head;

printf(\ while(p->next!=NULL){

printf(\ p=p->next; }

// printf(\}

/****************求单链表的长度(元素的个数)**************************/ int ListLen(NODE *head){ NODE *p=head; int i=0; while(p){ i++;

p=p->next; }

return i-1; }

/******************查找单链表中第i个元素的值************************/ int Get(NODE *head,int i){ NODE *p=head; int j=0;

while(p && jnext; j++; }

if(!p || j>i) return -1; else return p->data;

数据结构 清华大学出版社 严蔚敏吴伟民编著

for(i=1;ilength;i++)}voidunionSort(sqlist*la,sqlist*lb,sqlist*lc)//已知两个有序表La和Lb,把两个有序表合并成仍然有序的线性表Lc.{inti,j=0,t;for(i=0;ilength;i++){
推荐度:
点击下载文档文档为doc格式
00r768k7x33pit886asl2xn8u9whcj0049r
领取福利

微信扫码领取福利

微信扫码分享