编写一算法将顺序表转存为带头结点的单循环链表。算法中所用到的数据结构需自行定义。
( 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; } }