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-2021 ITdaan.com