typedef struct Node *PtrToNode;
struct Node * 是oldname,PtrToNode是newname
struct Node *定义的变量指的是 指向.struct Node的变量【指针变量】- 该节点
struct Node {
ElementType Data; /* 存储结点数据 */
PtrToNode Next; /* 指向下一个结点的指针 */
};
代码如下:
List Merge( List L1, List L2 ){
List pa,pb,pc,L;
L = (List)malloc(sizeof(struct Node)); //malloc返回void* 类型指针,它可以通过类型转换强制转换为任何其它类型的指针
//如果在C++中,可以直接用new来分配内存,可以自动识别内存大小,并分配同类型的指针
pa = L1->Next;
pb = L2->Next;
pc = L;
while(pa && pb){
if(pa->Data <= pb->Data){
pc->Next = pa;
pc = pc->Next;
pa = pa->Next;
}else{
pc->Next = pb;
pc = pc->Next; //移动pc向后
pb = pb->Next; //移动pc向后
}
}
if(pa)
pc->Next = pa;
else
pc->Next = pb;
L1->Next = NULL;
L2->Next = NULL; //空链表
return L;
}