25王道数据结构2.37综合应用 06,08,12,13,14,15,16
目录
全是自己写的,可能有不对的,欢迎大家斧正。
06
void measure06(LNode* head,LNode* nod1e,LNode* nod2e){
LNode* node1=new LNode(0);
LNode* node2=new LNode(0);
nod1e->next=node1;
nod2e->next=node2;
LNode* next=head;
while(next->next!=nullptr){
node1->next=next->next;
next=next->next;
node1=node1->next;
node2->next=next->next;
node2=node2->next;
next=next->next;
}
node1->next=nullptr;
node2->next=nullptr;
static LNode* arr[2]={node1,node2};
}
08
LinkList measure08(LNode* nodeA,LNode* nodeB){
LNode* a=nodeA->next;
LNode* b=nodeB->next;
LinkList head=(LinkList)malloc(sizeof(LNode*));
head->next=NULL;
LinkList p=head;
while(a!=nullptr||b!=nullptr){
LinkList temp=(LinkList)malloc(sizeof(LNode*));
// cout << "a: " << a->data<< "b: "<< b->data <<endl;
if(a!=nullptr&&b!=nullptr){
if(a->data<=b->data){
cout << "a: " << a->data;
temp->next=NULL;
temp->data=a->data;
p->next=temp;
p=p->next;
a=a->next;
}else if(b->data<a->data){
cout << "b: " << b->data;
temp->next=NULL;
temp->data=b->data;
p->next=temp;
p=p->next;
b=b->next;
}
}else{
if(a==nullptr){
cout << "b: " << b->data;
temp->next=NULL;
temp->data=b->data;
p->next=temp;
p=p->next;
b=b->next;
}else{
cout << "a: " << a->data;
temp->next=NULL;
temp->data=a->data;
p->next=temp;
p=p->next;
a=a->next;
}
}
}
return head;
}
12
void measure12(LinkList h1,LinkList h2){
LinkList p1=h1;
while(p1->next!=h1){
p1=p1->next;
}
p1->next=h2->next;
p1=p1->next;
while(p1->next!=h2){
p1=p1->next;
}
p1->next=h1;
}
13
DLinkList insert(DLinkList L,DLinkList temp, int x){
DLinkList p=L;
while(p->next!=nullptr&&p->next->data>x){
p=p->next;
}
//删除节点
temp->pre->next=temp->next;
temp->next->pre=temp->pre;
temp->next=nullptr;
temp->pre=nullptr;
//插入
if(p==L){
temp->pre=L;
temp->next=L->next;
temp->next->pre=temp;
L->next=temp;
}else{
DLinkList t=p->next;
p->next=temp;
temp->next=t;
t->pre=temp;
temp->pre=p;
}
return L;
}
DLinkList measure13(DLinkList L,int x){
DLinkList p=L->next;
while(p->next!=nullptr)
{
if(p->data==x){
p->freq=p->freq+1;
insert(L,p,p->freq);
return p;
}
p=p->next;
}
return nullptr;
}
#define Locate measure13
14
LinkList measure14(LinkList head,int x){
//先把最后一个节点跟前面连起来,最后再删掉
LinkList p = head;
int len=1;
while(p->next!=nullptr){
p=p->next;
len++;
}
cout<<len<<endl;
p->next=head;
p=head;
for(int i=0;i<len-(x%4)-1;i++){
p=p->next;
}
head=p->next;
p->next=nullptr;
return head;
}
15
bool isCircle(LinkList head){
LinkList f=head;
LinkList s=head;
while(s->next!=nullptr||f->next->next!=nullptr){
if(s->next==f->next->next){
return true;
}
s=s->next;
f=f->next->next;
}
return false;
}
原文地址:https://blog.csdn.net/SuperSwaggy/article/details/140852740
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!