/*循环单链表 带头尾指针*/ #include<iostream> #include<time.h> using namespace std; typedef int ElemType; typedef struct Node{ ElemType data; Node *next; }; Node *head, *rear; /*创建 头插法*/ void CreateList_Head(Node *L, int n){ srand(time(0)); Node *p; //L = new Node; L->next = NULL; for (int i = 0; i < n; ++i){ p = new Node; p->data = rand() % 100 + 1; p->next = L->next; L->next = p; } } /*创建 尾插法*/ void CreateList_Rear(Node *L, int n){ srand(time(0)); Node *p,*q; L->next = NULL; q = L; for (int i = 0; i < n; ++i){ p = new Node; p->data = rand() % 100 + 1; p->next = q->next; q->next = p; } } /*打印链表*/ void DisplayList(Node *L){ Node *p; p = L->next;//L是头指针 int i = 1; while (p){ cout << "第" << i << "个节点:" << p->data << endl; p = p->next; ++i; } } int main(){ Node *L = new Node; // CreateList_Head(L, 10); CreateList_Rear(L, 10); DisplayList(L); }