链表/堆栈(头节点存放数据的方式)(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); }

 

posted on 2018-06-25 18:29  机壳啦  阅读(344)  评论(0编辑  收藏  举报

导航