//栈的实现
#include <stdio.h>
#define MAX 100
#define Elemtype int
struct zhan
{
Elemtype sta[MAX];
int top;
};
typedef struct zhan Stack;
void InitStack(Stack &st)
{
st.top = 0 ;
}
void Push(Stack &st,Elemtype e)
{
if(st.top>=MAX)
return;
else
{
st.top ++;
st.sta[st.top] = e ;
}
}
bool Pop(Stack &st)
{
if(st.top==0)
return false;
else
{
return true;
st.top --;
}
}
Elemtype GetTop(Stack &st)
{
/**//* if(st.top==0)
return */
return st.sta[st.top];
}
bool EmptyStack(Stack &st)
{
if(st.top==0)
return true;
else
return false;
}
void main()
{
}
1#include <stdio.h>
2
3struct StuGrade
4{
5 int num;
6 int mark;
7};
8
9void main()
10{
11 struct StuGrade group1[4]={{1,70},{2,85},{3,75},{4,90}},group2[4]={{5,60},{6,80},{7,76},{8,50}};
12 printf("打印成绩:\n");
13 for(int i=0;i<4;i++)
14 {
15 printf("学好:%d,成绩为:%d\n",group1[i].num,group1[i].mark);
16 printf("学好:%d,成绩为:%d\n",group2[i].num,group2[i].mark);
17 }
18}
结构体的类型名是struct list ;struct只是声明结构体需要的关键字。 如果你要定义一个结构体变量 你就可以 :结构体类型 变量名
如:struct list student;
你是不是觉得写struct list 觉得很麻烦?
那你就可以把struct list起个别名;就是绰号
可以这样
struct list{
int a;
char c;
stuct list *next;
};
typedef struct list A;
那么你的A student; 就等同与 struct list student;
。
当然你也可以在声明一个结构体的时候给它起别名
typedef struct list{
int a;
char c;
struct list *next;
}A;
//队列的实现 , 只有一端进行插入,一端进行删除,允许插入的一端称为队尾,允许删除的一端称为队头。
#include <stdio.h>
#define MAX 100
#define Elemtype int
struct sequence
{
Elemtype seq[MAX];
int top;
int rear;
};
typedef struct sequence Sequence;
void InitQueue(Sequence &queue)
{
queue.top=queue.rear=0;
}
void EnQueue(Sequence &queue,Elemtype e)
{
if(queue.rear==MAX-1)
return;
else
{
queue.rear++;
queue.seq[queue.rear]=e;
}
}
void DlQueue(Sequence &queue)
{
if(queue.rear==queue.top)
return;
else
{
queue.top++;
}
}
Elemtype GetHead(Sequence &queue)
{
if(queue.rear==queue.top)
return NULL;
else
return queue.seq[queue.top];
}
void main()
{
}
上传一个比较有用的ppt
link
队空:Q.front =Q. rear
队满: Q.front =(Q.rear + 1) % maxSize
入队: Q.rear = (Q.rear + 1) % maxSize
出队: Q.front = (front + 1) % maxSize;
求队长:(Q.rear-Q.front+maxSize)%maxSize