第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/29 6:14:41 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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;

数据结构 清华大学出版社 严蔚敏吴伟民编著.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c00r768k7x33pit886asl2xn8u9whcj0049r_10.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top