C-單鏈表的創建與遍歷(14)


#include <stdio.h>
#include <stdlib.h>

//聲明一個創建鏈表函數,並返回頭結點
//利用頭結點進行對鏈表的遍歷
struct Node *create_Linked();

//遍歷鏈表函數
void foreach_printf(struct Node *);

//定義一個結構體
struct Node{
int val;
struct Node * pNext;
};

int main(int argc,char *argv[]){

struct Node *pHeader=NULL;

pHeader=create_Linked();

foreach_printf(pHeader);
return 0;

}

//創建一個單鏈表
struct Node *create_Linked(){
//定義頭結點,當前節點,和上一個節點的指針;
struct Node *mFirst=NULL;
struct Node *mCurrent=NULL;
struct Node *mPrevious=NULL;
int length=5;
int i = 0;
for (; i < length; i++)
{
//動態為當前結點分配內存
mCurrent=(struct Node *)malloc(sizeof(struct Node));
//第一次運行 把當前節點賦予頭結點
if (mFirst==NULL)
{
mFirst=mCurrent;
}
//為當前結點賦值
mCurrent->val=i;
mCurrent->pNext=NULL;
//第一次運行時 上一個節點為NULL,將當前結點存儲
//第二次運行時,將存儲的上個節點的結構體內指針賦值為當前指針
if (mPrevious!=NULL)
{
mPrevious->pNext=mCurrent;
}
mPrevious=mCurrent;
}
return mFirst;
}

void foreach_printf(struct Node *pHeader){
struct Node *temp=pHeader;
int j=0;
while (temp!=NULL)
{
printf("第%d個地址的內容是%d\n",j++,temp->val);
temp=temp->pNext;
}
}


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com