最近通过对数据结构的学习,对链表有了更深的认识.在单向链表中,关键是确定下一结点的指针.现在通过一题目详细说明(在VC6.0,WINXP PRO SP2上调试通过)
题目要求:建立两个存放整数的链表,按递增的顺序输入数据.将两个链表合并成一个链表,新链表上中的数据仍然按照递增排序.
程序如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct intnumber
{
int n;
struct intnumber *next;
}INTNUM;
INTNUM *creat(int num)/*建立链表*/
{
INTNUM *p1,*p2,*head;
int i;
p1 = (INTNUM *)malloc(sizeof(INTNUM));
head = p1;
p2 = p1;
for(i = 0;i < num - 1;i++)
{
p1 = (INTNUM *)malloc(sizeof(INTNUM));
p2 ->next = p1;
p2 = p1;
}
p1 ->next = NULL;
return head;
}
void input(INTNUM *head)/*输入链表数据*/
{
INTNUM *p;
p = head;
while(p ->next != NULL)
{
scanf("%d",&(p ->n));
p = p ->next;
}
scanf(