您的位置:首页 > 编程语言 > C语言/C++

c语言单向链表的实现

2016-08-26 11:50 239 查看
链表由一系列不必在内存中相连的结构组成。每一个结构均有表元素和执行包含该元素后继元的结构的指针,我们称之为Next指针,最后一个单元的Next指针指向NULL,ANSI C规定NULL为零。

以下为我的单向链表的c语言实现

#include <stdio.h>

#include <stdlib.h>

struct SignalNode{
int num;
struct SignalNode *next;

};

struct SignalNode * CreateNode(struct SignalNode *phead){
struct SignalNode *p1,*p2;
p1=p2=(struct SignalNode *)malloc(sizeof(struct SignalNode));
printf("please enter num:\n");
scanf("%d",&p1->num);
getchar();
p1->next=NULL;

while(p1->num > 0){
if(phead == NULL)
phead=p1;
else
p2->next=p1;
p2=p1;

p1=(struct SignalNode*)malloc(sizeof(struct SignalNode));
printf("come on enter num :\n");
scanf("%d",&p1->num);
}
free(p1);
p1=NULL;
p2->next=NULL;
return phead;

}

void PrintNode(struct SignalNode *phead){
struct SignalNode *temp;
temp = phead;

while(temp != NULL){
printf("%6d\n",temp->num);
temp=temp->next;
}
}

int main(){
struct SignalNode *head;
head = CreateNode(head);
PrintNode(head);
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 链表