该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include "stdafx.h"
//定义链表节点类型
struct node
{
int val;//值域
struct node * next;//指针域
};
struct node * creat_link();//声明链表生成函数
struct node * merge_link(struct node * first_link, struct node * second_link);//声明链表合并函数
int main(int argc, char* argv[])
{
//定义三个链表的头指针以及临时指针变量o
struct node * ha, * hb, * hc, * o;
//生成两个递增有序的链表A和B
ha=creat_link(); hb=creat_link();
//打印合并前的链表A
printf("\n\n链表A: HA -> ");
for(o=ha; o!=NULL; o=o->next)
{
printf("%d", o->val);
if(o->next!=NULL) printf(" -> ");
}
printf("\n\n");
//打印合并前的链表B
printf("链表B: HB -> ");
for(o=hb; o!=NULL; o=o->next)
{
printf("%d", o->val);
if(o->next!=NULL) printf(" -> ");
}
printf("\n\n");
//合并两个有序链表A和B为递减有序表C
hc=merge_link(ha, hb);
//打印并删除合并后的链表C
printf("链表C: HC -> ");
for(; hc!=NULL;)
{
printf("%d", hc->val);
if(hc->next!=NULL) printf(" -> ");
//删除C表的第一个节点
o=hc; hc=hc->next; delete o;
}
printf("\n\n");
return 0;
}
//定义链表生成函数
struct node * creat_link()
{
//声明链表头指针以及临时变量val
int val;
struct node * head=NULL, * p;
//采用头插法创建递增有序的链表
printf("\n请按递减序列输入各元素值,回车间隔,-1结束:\n");
for(;;)
{
//读入新的元素值
fflush(stdin); scanf("%d", &val);
//当元素值为-1时创建过程结束
if(val==-1) break;
//生成新节点,赋值为val
p=new struct node; p->val=val;
//将节点p头插至链表
p->next=head; head=p;
}
//返回所创建的链表头指针
return head;
}
//定义链表合并函数
struct node * merge_link(struct node * first_link, struct node * second_link)
{
//声明链表头指针以及临时指针变量q
struct node * result_link=NULL, * q;
//当A表和B表都不为空时
for(;first_link!=NULL && second_link!=NULL;)
{
//如果B表的第一个数据节点数值较小
if(first_link->val>second_link->val)
{
q=second_link;//q指向B表的第一个节点
second_link=q->next;//将节点q从B表中逻辑删除
}
else//如果A表的第一个数据节点数值较小
{
q=first_link;//q指向A表的第一个节点
first_link=q->next;//将节点q从A表中逻辑删除
}
q->next=result_link; result_link=q;//将节点q头插至表C
}
//当A表不为空时
for(;first_link!=NULL;)
{
q=first_link;//q指向A表的第一个节点
first_link=q->next;//将节点q从A表中逻辑删除
q->next=result_link; result_link=q;//将节点q头插至表C
}
//当B表不为空时
for(;second_link!=NULL;)
{
q=second_link;//q指向B表的第一个节点
second_link=q->next;//将节点q从B表中逻辑删除
q->next=result_link; result_link=q;//将节点q头插至表C
}
//返回合并的链表头指针
return result_link;
}
运行时出现“
fatal error C1083: Cannot open include file: *stdafx.h*: No such file or directory
执行 cl.exe 时出错.
” 这个东西 是什么情况?