链表/堆栈(头节点存放数据的方式)(C语言版)
描述:pass
#include<stdio.h> #include <stdlib.h> typedef struct _node{ int value; struct _node *next; } node; node* creat(); node* print(node* L1); int main(){ node *L1; L1 = creat(); print(L1); }
node* creat(){//这个是堆桟(倒序添加的 ,先加的在后面,后加的在前面)
//这个是 头节点存放数据的 堆栈实现;(一般都是头节点不存放数据的实现的) int number; node*end=NULL,*head; scanf("%d",&number); if(number!=-1){ end=(node*)malloc(sizeof(node)); end->value=number; end->next=NULL; } head=end; //创造了第一个链表节点; while(number!=-1){ scanf("%d",&number); if(number!=-1){ node *p; p=(node*)malloc(sizeof(node)); p->value=number; p->next=end; //生成了一个临时节点; head=p; end=p; //将两个链表节点链接起来了; } } return head; }
node* print(node* L1){
//这个是头节点 会存放数据的 链表/堆栈 的数据的打印; node*last=L1; if(last==NULL){ printf("NULL"); return 0; } while(last->next!=NULL){ printf("%d ",last->value); last=last->next; } printf("%d ",last->value); }