要想输出链表,首先要有一个链表。那就要初始化,然后添加元素,再依次遍历即可。
#include <stdlib.h>
#include<iostream>
typedef int ElemType;
struct Node
{
ElemType data;
struct Node *next;
};
typedef struct Node Node;
typedef struct Node* Linklist;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MaxSize 30 //存储空间初始分配量
typedef int Status;
//对链表进行头插法
Status ListInsert1(Linklist *L,int i, ElemType e)
{
Linklist p,s;
p=(*L);
int j=1;
while(p && j<i)
{
p=p->next;
j++;
}
if (!p || j>i)
return ERROR;
s=(Linklist)malloc(sizeof(Node));
s->data=e;
s->next =p->next;
p->next =s;
return OK;
}
/* 链表初始化 */
Status InitList1(Linklist *L)
{
*L =(Linklist)malloc(sizeof(Node));
if ((*L)==NULL)
{
return ERROR;
}
(*L)->next=NULL;
return OK;
}
/* 从头到尾输出链表元素 */
Status ListTraverse1(Linklist L)
{
Linklist p;
p=L->next;
while(p)
{
printf("%d",p->data);
p=p->next;
}
return OK;
}
int main()
{
Linklist L;
InitList1(&L); //首先,要初始化一个链表
int len1=ListLength1(L);
printf("%d\n",len1);
for (int i=1;i<=5;i++)
{
ListInsert1(&L,1,i);
}
int len2=ListLength1(L);
printf("%d\n",len2);
Linklist p =L;
for(int i=1;i<=len2;i++)
{
printf("%d\n",p->next->data);
p=p->next;
}
//int num1=findInLinkList1(L,2);
//printf("num1=%d\n",num1);
//int num2=findInLinkList3(L,2);
//printf("num2=%d\n",num2);
//int num3=findInLinkList3(L,2);
//printf("num3=%d\n",num3);
ListTraverse1(L);
getchar();
}