编写一算法将顺序表转存为带头结点的单循环链表。算法中所用到的数据结构需自行定义。
( 1 ) 定义所需要的数据结构
#define MaxSize 100
typedef struct SeqList{
ElemType data[MaxSize];
int length;
}SeqList;
typedef struct node{
ElemType data;
struct node *nxt;
}ListNode;
typedef ListNode *LinkedList;
(2)算法
void ans(SeqList L,LinkList *L2){
/*L是顺序存储的线性表;L2为新建链表的头指针*/
*L2=(LinkList)malloc(sizeof(ListNode));
L2->next=L2;
for (i=L.length;i>0;i--){
p=(LinkNode *)malloc(sizeof(ListNode));
p->data=L.elem[i-1];
p->next=L2->next;
L2->next=p;
}
}