做一个节点
先做节点类型
//用结构体做节点类型
struct Node{
int n;//数据
struct Node*pNext;//用指针变量连接(指针变量保存下一节数据的首地址/指向下一个节点)
}
定义变量
法1:
struct Node n1;//可以这样定义保存节点的指针变量,但最好别这样,不够高级
pList=&n1;
法2:
int main(){
struct Node*pList=Null;//pList是一个指针变量,现在指向Null,是一个空链表
//pList这个指针变量也可以指向一个链表
}
节点需要包含
存需要处理的一节节数据=>存储方式:变量、结构体、数组...=>数据域
节点之间要能够相连=>用指针变量保存下一节的首地址=>指针域
1.节点需要参数,如果没有参数,节点数据从哪里来?只有通过参数传进来,多少个数据多少个参数n? ? (int n)
2.申请内存(动态内存分配)
//做一个函数专门创建节点
struct Node* CreatNode(int n){
struct Node* pNew=malloc(sizeof(struct Node));
if(Null==pNew){
printf("申请内存失败\n");
return Null;
}
//申请成功,进入下一步操作
}
3.申请完内存后,要给成员赋值
//做一个函数专门创建节点
struct Node* CreatNode(int n){
struct Node* pNew=malloc(sizeof(struct Node));
if(Null==pNew){
printf("申请内存失败\n");
return Null; //申请失败,返回Null
}
//申请成功,进入下一步操作
pNew->n=n;
pNew->pNext=Null;//没有赋值这个指针指向的就是垃圾值,这个指针变量就是一个野指针
return pNew;
}
4.返回
return pNew;
为什么要返回?调用?CreatNode()函数就是为了创建一个节点,创建好了要交到别的地方使用,因此要返回pNew
|