双向链表、栈的使用

思维导图

输入一个十进制的正数,转换乘其他进制

word.h

     1	#ifndef WORD
     2	#define WORD
     3	#include<myhead.h>
     4	#define max 8      //最大容量
     5	typedef int datatype;         //重定义类型名
     6	
     7	typedef struct Node
     8	{
     9		datatype *data;//存储栈
    10		int top;//记录栈顶元素的下标
    11	}Node,*NodePtr;
    12	//创建栈
    13	NodePtr stack_create();
    14	
    15	//判空
    16	int stack_empty(NodePtr L);
    17	
    18	//判满
    19	int stack_full(NodePtr);
    20	
    21	//入栈
    22	void stack_push(NodePtr L,datatype e);
    23	//出栈
    24	void stack_pop(NodePtr L);
    25	 
    26	//转换函数
    27	void stack_switch(NodePtr L,int a,int b);
    28	 
    29	//销毁栈
    30	void stack_destroy(NodePtr L);
    31	
    32	#endif

word.c

     1	#include"word.h"
     2	
     3	//创建栈
     4	NodePtr stack_create()
     5	{
     6		NodePtr L=(NodePtr)malloc(sizeof(Node));
     7		if(NULL==L)
     8		{
     9			printf("创建失败\n");
    10			return NULL;
    11		}
    12		L->data=(datatype*)malloc(sizeof(datatype)*max);
    13		if(NULL==L->data)
    14		{
    15			printf("创建失败\n");
    16			return NULL;
    17		}
    18	
    19	
    20		memset(L->data,0,sizeof(datatype)*max);//初始化
    21		L->top=-1;
    22		printf("创建成功\n");
    23		return L;
    24	
    25	}
    26	
    27	
    28	//判空
    29	int stack_empty(NodePtr L)
    30	{
    31		return L->top==-1;
    32	}
    33	//判满
    34	int stack_full(NodePtr L)
    35	{
    36		return L->top==max-1;
    37	}
    38	//入栈
    39	void stack_push(NodePtr L,datatype e)
    40	{
    41		//判断逻辑
    42		if(NULL==L||stack_full(L))
    43		{
    44			printf("入栈失败\n");
    45			return ;
    46		}
    47	
    48	
    49		//入栈逻辑
    50			L->top++;
    51			L->data[L->top]=e;
    52	}
    53	//出栈
    54	void stack_pop(NodePtr L)
    55	{
    56		if(NULL==L||stack_empty(L))
    57		{
    58			printf("出栈失败\n");
    59			return ;
    60		}
    61		printf("%d\t",L->data[L->top]);
    62		L->top--;
    63	}
    64	
    65	
    66	//转换函数
    67	void stack_switch(NodePtr L,int a,int b)
    68	{
    69		//判断逻辑
    70		if(L==NULL)
    71		{
    72			printf("转换失败\n");
    73			return;
    74		}
    75		while(a>0)
    76		{
    77			stack_push(L,a%b);
    78			a=a/b;
    79		}
    80		while(!stack_empty(L))
    81		{
    82			stack_pop(L);
    83		}
    84		printf("\n");
    85	}
    86	
    87	
    88	//销毁栈
    89	void stack_destroy(NodePtr L)
    90	{
    91	
    92	    if(L != NULL)
    93	    {
    94	        //销毁栈的容器
    95	        free(L->data);
    96	        L->data = NULL;
    97	
    98	        //销毁栈
    99	        free(L);
   100	        L = NULL;
   101	    }
   102	    printf("销毁成功\n");
   103	}

main.c

     1	#include"word.h"
     2	int main(int argc, const char *argv[])
     3	{
     4		NodePtr L=stack_create();
     5		if(NULL==L)
     6		{
     7			return -1;
     8		}
     9		int a=0;
    10		int b=0;
    11		printf("请输入一个整数:");
    12		scanf("%d",&a);
    13		printf("请输入转换的进制数;");
    14		scanf("%d",&b);
    15		stack_switch(L,a,b);
    16		stack_destroy(L);
    17		return 0;
    18	}


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值