数据结构
DecadeScript
飞啊飞啊飞
展开
-
数据结构:线性表
#include<stdio.h>typedef struct{ ElementType Data[MAXSIZE]; int Last; } List;void main{ //1 初始化 建立空的顺序表 List *MakeEmpty(){ List *PtrL; PtrL = (List *)malloc原创 2015-04-10 16:33:25 · 403 阅读 · 0 评论 -
数据结构:堆栈的链式存储实现
栈的链式存储实际是一个单链表,叫做栈链。插入和删除应该都只在栈链的栈顶进行。#include<stdio.h> typedef struct Node{ ElementType Data; struct Node *Next; } LinkStack ; LinkStack *CreateStack(){ LinkStack原创 2015-04-13 14:14:42 · 597 阅读 · 0 评论 -
队列
链队列 用链表表示的队列简称为链队列。 空链队列的判决条件为头指针和尾指针均指向头结点。//链队列 typedef struct QNode{ ElementType data; struct QNode *next; }QNode, *QueuePtr; typedef struct { QueuePtr front;原创 2015-04-15 09:58:30 · 386 阅读 · 0 评论 -
数据结构:中缀表达式如何转换为后缀表达式
从头到尾读取中缀表达式的每个对象,对不同对象按不同的情况处理。 ① 运算数:直接输出; ② 左括号:压入堆栈; ③ 右括号:将栈顶的运算符弹出并输出,直到遇到左括号(出栈,不输出); ④ 运算符: (遇到运算符不是第一时间输出 先与后面的运算符进行比较) • 若优先级大于栈顶运算符(这里的栈顶运算符是指当前处于栈顶的运算符)时,则把它压栈; • 若优先级小于等于栈顶运算符时,将栈原创 2015-04-13 14:30:58 · 571 阅读 · 0 评论 -
数据结构:请用一个数组实现两个堆栈,要求最大地利用数组空间,使 数组只要有空间入栈操作就可以成功
题目:请用一个数组实现两个堆栈,要求最大地利用数组空间,使 数组只要有空间入栈操作就可以成功【分析】 一种比较聪明的方法是使这两个栈分别从数组的两头开始 向中间生长;当两个栈的栈顶指针相遇时,表示两个栈都满了。#include<stdio.h>#define MAXSIZE 100; typedef struct DStack{ ElementType Data(MAXSI原创 2015-04-13 13:36:52 · 1970 阅读 · 1 评论 -
数据结构:数制转换
十进制数 N 和其他 d 进制数 转换原理: N= (N div d ) x d + N mod d(div为整除运算 mod为求余运算)对于输入的任意的一个非负十进制整数,打印输出与其值的八进制数。由于上诉计算过程是从低到高位顺序产生八进制的各个数位,而打印输出,一般来说应从高位到低位进行,恰好和计算过程相反。因此,若将计算过程得到的八进制数的各位顺序进栈,则按出栈序列打印输出的即为与输入对应的原创 2015-04-20 09:27:33 · 3433 阅读 · 0 评论 -
数据结构:打印简单的链表
打印简单的链表#include<stdio.h>#include<stdlib.h>struct node;typedef struct node *PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;struct node{ int element; struct node * Next;};List原创 2015-04-21 11:05:14 · 786 阅读 · 0 评论