怎么输出链表长度C语言,下面程序输出结果不,如输出的链表长度结果不对,不知有关问题在哪里。请高手看下...
當前位置:我的異常網? C語言???下面程序輸出結果不,如輸出的鏈表長度結果不對,不
下面程序輸出結果不,如輸出的鏈表長度結果不對,不知有關問題在哪里。請高手看下
www.myexceptions.net??網友分享于:2013-09-18??瀏覽:8次
下面程序輸出結果不,如輸出的鏈表長度結果不對,不知問題在哪里。請高手看下。
/*
題目:
時間:
目的:
功能:
*/
#include
#include
#include
typedef?struct?Node
{
int?data;
struct?Node*?pNext;
}*?PNODE,?NODE;
PNODE?CreateList(void)
{
int?i;
int?value;//輸入節點的值。
int?length;
PNODE?pHead?=?(PNODE)malloc(sizeof(NODE));//pHead指向了頭節點。
if(NULL?==?pHead)
{
printf("分配失敗,程序終止");
exit(-1);
}
PNODE?pTail?=?pHead;
pTail->pNext?=?NULL;//當一個鏈表只有一個節點的時候
printf("請輸入要生成結點的個數:length?=?");
scanf("%d",?&length);
for(int?i=0;?i
{
printf("請輸入第%d個節點的值:",?i+1);
scanf("%d",?&value);
PNODE?pNEW?=?(PNODE)malloc(sizeof(NODE));//生成新的節點。pNEW為臨時節點。
if(NULL?==?pNEW)
{
printf("內存分配失敗,程序終止。\n");
exit(-1);
}
pNEW->data?=?value;
pHead->pNext?=?pNEW;//把pNEW掛到pHead->pNext上。尾節點的后面,鏈表還沒有造出來。
pNEW->pNext?=?NULL;//指針域清空,尾節點指針域為空。
pTail?=?pNEW;
}
return?pHead;
}
//鏈表里不能用p++,因為鏈表不是連續的。
void?TraverseList(PNODE?pHead)//鏈表為空也有一個頭節點。pHead指向它??真湵眍^節點指針域也為空。
{
PNODE?p?=?pHead->pNext;
while(NULL?!=?p)
{
printf("輸出數據為:%d",?p->data);
p?=?p->pNext;
}
printf("\n");
return;
}
bool?IsEmpty(PNODE?pHead)
{
if(NULL?==?pHead->pNext)
{
return?true;
}
else
{
return?false;
}
}
int?LengthList(PNODE?pHead)
{
PNODE?p?=?pHead->pNext;
int?length?=?0;
while(NULL?!=?p)
{
length++;
p?=?p->pNext;
}
return?length;
}
bool?InsertList(PNODE?pHead,?int?position,?int?value)
{
int?i?=?0;
PNODE?p?=?pHead;
while(NULL?!=?p?&&?i?
{
p?=?p->pNext;
++i;
}
if(i?
{
return?false;
}
PNODE?pNEW?=?(PNODE)malloc(sizeof(NODE));
if(NULL?==?pNEW)
{
printf("動態分配內存失敗!");
exit(-1);
}
pNEW->data?=?value;
PNODE?q?=?p->pNext;
文章評論
總結
以上是生活随笔為你收集整理的怎么输出链表长度C语言,下面程序输出结果不,如输出的链表长度结果不对,不知有关问题在哪里。请高手看下...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果笔记本电脑怎么激活windows 苹
- 下一篇: windows 识别u盘格式化怎么办 解