//文件名:exp2-6.cpp
#include <stdio.h>
#include <malloc.h>
typedef char ElemType;
typedef struct LNode //定义单链表结点类型
{
ElemType data;
struct LNode *next;
} LinkList;
extern void DispList(LinkList *L);
extern void DestroyList(LinkList *&L);
void CreateListR(LinkList *&L,ElemType a[],int n) //尾插法建表
{
LinkList *s,*r;int i;
L=(LinkList *)malloc(sizeof(LinkList)); //创建头结点
L->next=NULL;
r=L; //r始终指向终端结点,开始时指向头结点
for (i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));//创建新结点
s->data=a[i];
r->next=s; //将*s插入*r之后
r=s;
}
r->next=NULL; //终端结点next域置为NULL
}
void sort(LinkList *&L) //单链表元素递增排序
{
LinkList *p,*pre,*q;
p=L->next->next; //p指向L的第2个数据节点
L->next->next=NULL; //构造只含一个数据节点的有序表
while (p!=NULL)
{ q=p->next; //q保存*p节点后继节点的指针
pre=L; //从有序表开头进行比较,pre指向插入*p的前驱节点
while (pre->next!=NULL && pre-
集合的并,集合的交,集合的差C
本文介绍了如何使用C语言来实现集合的基本操作,包括计算两个集合的并集、交集以及差集。通过链表数据结构来表示集合,详细阐述了相关算法的实现细节和步骤。
摘要由CSDN通过智能技术生成