最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

有序表的合并

来源:动视网 责编:小OO 时间:2025-09-29 18:26:54
文档

有序表的合并

实验有序表合并1、问题描述:个递增有序的单链表,请你把它两个合并成一个有序的单链表2、数据结构设计structnode{intvalue;node*next;};3、算法设计(1)给单链表添加节点voidinsertNode(node*head,intvalue){node*p=head->next;if(p==NULL){  p=newnode;  p->value=value;  p->next=NULL;  head->next=p;  return;}while(p->next!=NU
推荐度:
导读实验有序表合并1、问题描述:个递增有序的单链表,请你把它两个合并成一个有序的单链表2、数据结构设计structnode{intvalue;node*next;};3、算法设计(1)给单链表添加节点voidinsertNode(node*head,intvalue){node*p=head->next;if(p==NULL){  p=newnode;  p->value=value;  p->next=NULL;  head->next=p;  return;}while(p->next!=NU
实验  有序表合并

1、问题描述:

个递增有序的单链表,请你把它两个合并成一个有序的单链表

2、数据结构设计

struct node

{

int value;

node* next;

};

3、算法设计

(1)给单链表添加节点

void insertNode(node* head, int value)

{

node* p = head->next;

if ( p == NULL )

{

   p = new node;

   p->value = value;

   p->next = NULL;

   head->next = p;

   return;

}

while ( p->next != NULL )

{

   p = p->next;

}

node* tmp = new node;

tmp->value = value;

tmp->next = NULL;

p->next = tmp;

}

(2)遍历输出链表节点

void print(node* head)

{

node* p = head->next;

while ( p != NULL )

{

   cout << p->value << " ";

   p = p->next;

}

cout << endl;

}

(3)合并有序表

node* formalMerge(node* headA, node* headB)

{

node* head = new node;

head->next = NULL;

node* p = headA->next;

node* q = headB->next;

if ( p == NULL )

{

   return headB;

}

if ( q == NULL )

{

   return headA;

}

while ( (p != NULL) && (q != NULL) )

{

   if ( p->value == q->value )

   {

    insertNode(head, p->value);

    insertNode(head, q->value);

    p = p->next;

    q = q->next;

   }

   else if ( p->value < q->value )

   {

    insertNode(head, p->value);

    p = p->next;

   }

   else if ( p->value > q->value )

   {

    insertNode(head, q->value);

    q = q->next;

   }

}

while ( p != NULL )

{

   insertNode(head, p->value);

   p = p->next;

}

while ( q != NULL )

{

   insertNode(head, q->value);

   q = q->next;

}

return head;

}

四、运行与测试

文档

有序表的合并

实验有序表合并1、问题描述:个递增有序的单链表,请你把它两个合并成一个有序的单链表2、数据结构设计structnode{intvalue;node*next;};3、算法设计(1)给单链表添加节点voidinsertNode(node*head,intvalue){node*p=head->next;if(p==NULL){  p=newnode;  p->value=value;  p->next=NULL;  head->next=p;  return;}while(p->next!=NU
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top