SList
#include<iostream>
#include<assert.h>
using namespace std;
#define ElemType int
typedef struct ListNode
{
ElemType data;
struct ListNode *next;
}ListNode;
typedef ListNode* List;
void InitList(List &list)
{
list = NULL;
}
void CreateList(List &list)
{
list = (ListNode*)malloc(sizeof(ListNode));
assert((list)!=NULL);
list->data=1;
list->next=NULL;
ListNode *p = list;
for(int i=2;i<=10;i++)
{
p = p->next = (ListNode*)malloc(sizeof(ListNode));//这里是重点!!!创建下一个节点,给P->next,然后让p这个指针再指向了创建好的那个下一个节点,通过循环,来达到链表的效果
assert(p != NULL);
p->data = i;
p->next = NULL;
}
}
void ShowList(List list)
{
ListNode *p =list;
while(p != NULL)
{
cout<<p->data<<"->";
p = p->next;
}
cout<<"Over!"<<endl;
}
int main()
{
List mylist;//等价于ListNode* mylist
InitList(mylist);
CreateList(mylist);
ShowList(mylist);
system("pause");
return 0;
}
运行结果如下: