c单链表实现的栈结构
来源:互联网 发布:零境网络是不是要倒闭 编辑:程序博客网 时间:2024/06/05 16:19
#include <stdlib.h>#include <stdio.h>#include <time.h>struct Node{ int value; struct Node *next;};typedef struct Node LStackNode;typedef struct Node *LinkedStack;LinkedStack LinkedStackInit(LinkedStack s){ s=NULL;return s;}LinkedStack LinkedPush(LinkedStack s,int x){ LStackNode *n; n=(LStackNode *)malloc(sizeof(LStackNode));if(!n) exit(-1); n->value=x; if(s==NULL){ s=n; }else{ n->next=s; s=n; } return s;}LinkedStack LinkedPop(LinkedStack s){ if(s==NULL) exit(0); int r=s->value; printf("%d \t",r); LStackNode *t; t=s; s=s->next;free(t); return s;}void printfLStack(LinkedStack t){ int i; i=0; while(t!=NULL){ t=LinkedPop(t); }}void main(){ int n; int m; printf("please input the number: \n"); scanf("%d",&n); srand(time(NULL)); LinkedStack Seven,Sodd; Seven=LinkedStackInit(Seven); Sodd=LinkedStackInit(Sodd); int i=0; for(i;i<n;i++){ m=rand()%100; printf("%d \t",m); if(m%2==0){ Seven=LinkedPush(Seven,m); }else{ Sodd=LinkedPush(Sodd,m); } } printf("\n Seven num:\n"); printfLStack(Seven); printf("\n Sodd num:\n"); printfLStack(Sodd); printf("\n");}
指针实现篇
#include <stdlib.h> #include <stdio.h> #include <time.h> struct Node{ int value; struct Node *next; }; typedef struct Node LStackNode; typedef struct Node *LinkedStack; LinkedStackInit(LinkedStack *s){ *s=NULL; } void LinkedPush(LinkedStack *s,int x){ LStackNode *n; n=(LStackNode *)malloc(sizeof(LStackNode)); if(!n) exit(-1); n->value=x; if(*s==NULL){ *s=n; }else{ n->next=*s; *s=n; } } void LinkedPop(LinkedStack *s){ if(*s==NULL) exit(0); int r=(**s).value; printf("%d \t",r); LStackNode *t; t=*s; *s=(**s).next; free(t); } void printfLStack(LinkedStack * t){ int i; while(*t!=NULL){ LinkedPop(t); } } void main(){ int n; int m; printf("please input the number: \n"); scanf("%d",&n); srand(time(NULL)); LinkedStack Seven,Sodd; LinkedStackInit(&Seven); LinkedStackInit(&Sodd); int i=0; for(i;i<n;i++){ m=rand()%100; printf("%d \t",m); if(m%2==0){ LinkedPush(&Seven,m); }else{ LinkedPush(&Sodd,m); } } printf("\n Seven num:\n"); printfLStack(&Seven); printf("\n Sodd num:\n"); printfLStack(&Sodd); printf("\n"); }
本文涉及的结构体方面的知识可以参考
- c单链表实现的栈结构
- C语言栈结构实现
- 队列的C语言实现(单链表结构)
- 动态栈的存储结构及算法C语言实现
- (C语言)栈的线性结构实现(数据结构八)
- 数据结构:栈的顺序结构及实现(C++)
- 栈的链式存储结构及C实现
- 数据结构--C语言实现栈的顺序存储结构
- C的简易栈(链式存储结构)实现
- C语言实现的链表结构
- 队列的链式结构C语言实现
- 栈结构的实现
- 单链表数据存储结构(c语言实现)
- C语言实现通用数据类型栈结构
- 栈-顺序存储结构(C语言实现)
- 栈的实现(顺序结构&&链式结构)
- 顺序表的链式结构中用C语言实现单链表的交并差运算
- 单链表的应用——多项式加法的C语言实现(链式存储结构)
- poj2352
- C++ Operator Precedence
- C#结构体
- dropDown在beforeOpen事件当中如何获得绑定该DropDown字段field
- andorid GridView与scrollView同时使用出现的问题
- c单链表实现的栈结构
- 偶尔看见迅雷面试题
- 浅析Input 子系统
- java.lang.NoSuchMethodError: jxl.write.WritableSheet.setRowView(ILjxl/CellVi 的处理方法
- 【LCA】Tree
- Spring batch 2.0例子(lineMapper)
- 找工作的想法
- Android 被杀掉的Service进程自动恢复?
- 如何在android上支持JNA