顺序结构 的数据元素 就是 数据
链式结构 的数据元素 是节点,节点由数据和地址组成
运算结构包括:
运算结构主要针对数据结构的行为,一般都体现为各种函数,主要有:
创建和销毁、增加和删除元素、取出和修改、排序、查询等算法;
堆栈 - 先进后出,后进先出(倒序排队)
输入十进制整数和进制数,利用堆栈以指定进制格式打印该十进制数
思路:先把整数对进制 取余,余数放入堆栈中,对整数 除以 进制,
---------------------------------------------------------
1 #include <stdio.h>
2 #include "sl.h"
3
4 int main()
5 {
6 int num=0,opr=0;
7 printf("请输入一个十进制整数:");
8 scanf("%d",&num);
9 printf("请输入一个进制:");
10 scanf("%d",&opr);
11 STACK stack;
12 stack_init(&stack);//创建堆栈
13 while(num)
14 {
15 stack_push(&stack,num%opr);
16 num=num/opr;
17 //stack_push(&stack,num=num/opr);
18 }
19 while(!stack_empty(&stack))
20 {
21 if(stack_top(&stack)>=10)
22 {
23 printf("%c",'A'+stack_pop(&stack)- 10);
24 }
25 else
26 {
27 printf("%d",stack_pop(&stack));
28 }
29 }
30 printf("\n");
31 stack_deinit(&stack);
32 }
---------------------------------------------------------
队列(queue)
线性结构 - 特点:先进先出(FIFO)
顺序结构的实现 - 原则:
有两个下标:队首下标 和 队尾下标
新增元素:放在队尾下标,队尾下标++
删除元素:队首下标出列,队首下标++
注:当下标 等于 容量时,下标回到0
qa.h qa.c
链式表的实现 - 原则:
有两个节点指针 - 队首节点和队尾节点
新增元素:放在队尾,同时修改原来队尾的next(第一个新增的元素是修改队首指针)
删除元素:弹出队首,同时销毁队首节点(最后一个元素还要修改队尾)
注:链式表的队列没有满,可以自增长度
ql.h ql.c
链式结构 的数据元素 是节点,节点由数据和地址组成
运算结构包括:
运算结构主要针对数据结构的行为,一般都体现为各种函数,主要有:
创建和销毁、增加和删除元素、取出和修改、排序、查询等算法;
堆栈 - 先进后出,后进先出(倒序排队)
输入十进制整数和进制数,利用堆栈以指定进制格式打印该十进制数
思路:先把整数对进制 取余,余数放入堆栈中,对整数 除以 进制,
---------------------------------------------------------
1 #include <stdio.h>
2 #include "sl.h"
3
4 int main()
5 {
6 int num=0,opr=0;
7 printf("请输入一个十进制整数:");
8 scanf("%d",&num);
9 printf("请输入一个进制:");
10 scanf("%d",&opr);
11 STACK stack;
12 stack_init(&stack);//创建堆栈
13 while(num)
14 {
15 stack_push(&stack,num%opr);
16 num=num/opr;
17 //stack_push(&stack,num=num/opr);
18 }
19 while(!stack_empty(&stack))
20 {
21 if(stack_top(&stack)>=10)
22 {
23 printf("%c",'A'+stack_pop(&stack)- 10);
24 }
25 else
26 {
27 printf("%d",stack_pop(&stack));
28 }
29 }
30 printf("\n");
31 stack_deinit(&stack);
32 }
---------------------------------------------------------
队列(queue)
线性结构 - 特点:先进先出(FIFO)
顺序结构的实现 - 原则:
有两个下标:队首下标 和 队尾下标
新增元素:放在队尾下标,队尾下标++
删除元素:队首下标出列,队首下标++
注:当下标 等于 容量时,下标回到0
qa.h qa.c
链式表的实现 - 原则:
有两个节点指针 - 队首节点和队尾节点
新增元素:放在队尾,同时修改原来队尾的next(第一个新增的元素是修改队首指针)
删除元素:弹出队首,同时销毁队首节点(最后一个元素还要修改队尾)
注:链式表的队列没有满,可以自增长度
ql.h ql.c