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语言实现
#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语言)
- c语言单向链表的简单实现,隐藏head节点
- C语言实现链表之单向链表(二)结点内存申请及数据初始化
- C语言实现一个简单的单向链表list
- C语言实现链表之单向链表(六)删除头结点
- C语言实现的单向链表
- C语言单向链表的实现
- C语言实现链表之单向链表(四)清空链表
- C语言实现链表之单向链表(三)创建链表
- C语言实现链表之单向链表(五)头结点前插入结点
- C语言数据结构之单向链表(已经调试可以实现相应的功能了,可是还是有几个问题现在还是不大理解,希望大家能够一起探讨)
- C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)
- C语言实现单向链表
- C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。
- list.c - A linked list by C --- C语言实现的单向链表
- 单向链表的C语言实现
- 自己实现C语言单向链表
- C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)
- C语言实现链表之单向链表(七)尾结点后插入结点
- C语言实现链表之单向链表(一)头文件