该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
# include
# include
# include
typedef struct node
{
int data;
struct node * pNext;
}NODE,*PNODE;
PNODE creatlist(void);
void traverse(PNODE);
bool empty(PNODE);
int length(PNODE);
int main(void)
{
int len;
PNODE pHead = NULL;
pHead = creatlist();
traverse(pHead);
if(empty(pHead))
printf("链表为空!\n");
else
printf("链表不空!\n");
len = length(pHead);
printf("链表长度为:%d\n", len);
system("pause");
return 0;
}
PNODE creatlist(void)
{
int i,len,val;
PNODE pHead = (PNODE)malloc(sizeof(NODE));
PNODE pTail = pHead;
pTail->pNext = NULL;
printf("请输入你想生成的节点个数:");
scanf("%d",&len);
for(i = 0; i < len; ++i)
{
printf("请输入第%d个节点的值:", i+1);
scanf("%d", &val);
PNODE pnew = (PNODE)malloc(sizeof(NODE));
pnew->data = val;
pTail->pNext = pnew;
pnew->pNext = NULL;
pTail = pnew;
}
return pHead;
}
void traverse(PNODE pHead)
{
PNODE p = pHead->pNext;
while(p)
{
printf("%d ", p->data);
p = p->pNext;
}
printf("\n");
}
bool empty(PNODE pHead)
{
if(pHead->pNext = NULL)
return true;
else
return false;
}
int length(PNODE pHead)//输出len = 0;!!
{
int len = 0;
PNODE p = pHead->pNext;
while(p)
{
++len;
p = p->pNext;
}
return len;
}