p=la->next ;
if(p) printf("\n%s\n" , comment) ;
while(p)
{ printf("%4c",p->data);
p=p->next;
}
printf("\n") ;
}
/*主函数*/
main( )
{ ListNode *la ,*lb,*lc, *p ;
int n,x,i;
printf("\n 用头插法建立链表 la,请输入节点内容:");
la=CreatListF();
DisplaySL(la,"新生成链 la 节点内容:");
printf("\n 链表 la 的长度: %2d",List_Length(la));
printf("\n 请输入要插入的元素: ");
scanf("%c",&x) ;
printf("\n 请输入要插入的位置:");
scanf("%d",&i) ;
InsertList(la,x,i);
DisplaySL(la,"插入后链 la 节点内容");
printf("\n 请输入要删除元素的位置:");
scanf("%d",&i);
DeleteList(la,i);
DisplaySL(la, "删除后链 la 节点内容");
printf("\n 用尾插法建立链表 lb,请输入节点内容:");
fflush(stdin);
lb=CreatListR1();
DisplaySL(lb,"新生成链 lb 节点内容:");
Init_List(&lc);
copy(la,lc);
DisplaySL(lc,"复制生成的链 lc 节点内容:");
}
2、有序单链表的合并
[问题描述] 已知单链表la和lb中的数据元素按非递减有序排列,将la和lb中的数据
元素,合并为一个新的单链表lc,lc中的数据元素仍按非递减有序排列。
[基本要求] 不破坏la表和lb表的结构。
[程序实现]
# include <stdio.h>
#include<alloc.h>
#define NULL 0
typedef int DataType;
typedef struct SLNode
{ DataType data;
struct SLNode * next;
}slnodetype;
int MergeSL(slnodetype *la,slnodetype *lb,slnodetype **lc);