- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课后
作业2.4
int Insert_SeqList(SeqList *va, int x)
/*把x插入递增有序表va中*/
{ if(vaàlast+1=MAXSIZE) return ERROR;??for(i=vaàlast; vaàelem[i]xi=0;i--)????vaàelem[i+1]=vaàelem[i];??vaàelem[i+1]=x; vaàlast++;??return OK;}/*Insert_SeqList */
2.7
void reverse(SeqList *L)//顺序表的就地逆置{??for(i=0,j=Làlast; ij; i++,j--)???? {t=Làelem[i];
Làelem[i]=Làelem[j];
Làelem[j]=t;
} }//reverse
*L) void LinkList_reverse(Linklist
/*链表的就地逆置*/{?Node *p, *q;
p=L-next;
L-next=NULL;?? while(p)?? {???? q=p; p=p-next; ???? q-next=Lànext; /*把L的元素逐个插入新表表头之后*/ Lànext=q;
?? }}/*LinkList_reverse*/分析:本算法的思想是,逐个地把L的当前元素q插入新的链表头部,p为新表表头.
2.9
Int del_node(Linklist s,elemtype *e)
{Node *pre,pre2;
if(s-next==s)return error;
pre2=s;pre=s-next;
while(pre-next!=s)
{ pre2=pre;pre=pre-next;
}
pre2-next=s; *e=pre-data; free(pre);
return ok;
}
2.11
void merge1(LinkList *A,LinkList *B,LinkList *C)
/*链表A和B合并为C,A和B的元素间隔排列,且用原空间*/{ Node *p, *q;
p=A-next; q=B-next; C=A;?? while(pq)?? { s=p-next; p-next=q; /*将B的元素插入*/???? if (s)???? { t=q-next; q-next=s;
} /*如A非空,将A的元素插入*/???? p=s;q=t;?? }/*while*/}/*merge1 */
3.5
int IsReverse(){ SeqStack s; char e;
??InitStack(s);??while((e=getchar())!=)??{????if(e==’@’) return 0;//不允许在’’之前出现’@’????push(s,e); ??}??while( (e=getchar())!=@)??{????if(IsEmpty(s)) return 0;????pop(s,c);????if(e!=c) return 0;??}??if(!IsEmpty(s)) return 0;??return 1;}//IsReverse
带tag域的循环队列类型定义:
# define MAXSIZE 50
typedef struct
{ QueueElementType element[MAXSIZE];
int front, rear,tag;
} SeqQueue;
注意:tag域的值为0表示“空”,1表示“非空
3.8
int EnterQueue(SeqQueue *Q,int x)
{if(Qàtag==1Q--front==Q--rear)
return FALSE;//tag域的值为1表示“非空”??Qàelement[Qàrear]=x;??Qàrear=(Q à rear+1)%MAXSIZE;??if(Q à tag==0) Q à tag=1; //队列不空
return TRUE;}//EnterQueue
3.8带tag域的循环队列出队算法
int DeleteQueue(SeqQueue *Q, int *x)
{if(Q--tag==0) return FALSE;???*?x=Q--element [Q--front];
Q--front=(Q--front+1)
您可能关注的文档
最近下载
- 2025甘肃甘南州专业化管理的村党组织书记招聘45人笔试备考题库及一套答案详解.docx VIP
- 05G525_吊车轨道联结及车挡 .docx VIP
- 《交流电机的维护与检修》课件.ppt VIP
- 妇产科学教学课件:女性生殖系统生理.ppt VIP
- (通用)大学生人文知识竞赛题库及答案(通用版).pptx VIP
- DB42╱T 1528.1-2019 湖北省农业用水定额 第1部分:农田灌溉用水定额.docx VIP
- 财务风险管理及防范对策研究.pptx VIP
- 儿童特应性皮炎的药物治疗.pptx
- 一种在无有机模板剂条件下合成MCM-49型沸石分子筛的方法.pdf VIP
- 三相异步电动机的铭牌.pptx VIP
文档评论(0)