栈_数组版
This commit is contained in:
parent
5ee422c56f
commit
649a6a2f44
@ -1,69 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
#include <malloc.h>
|
|
||||||
|
|
||||||
struct link_list_struct
|
|
||||||
{
|
|
||||||
struct link_list_struct * back_node;
|
|
||||||
int current_data;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
void add_node ( struct link_list_struct **current_node , int content )
|
|
||||||
{
|
|
||||||
struct link_list_struct *new_node = malloc(sizeof(struct link_list_struct));
|
|
||||||
new_node->back_node = *current_node;
|
|
||||||
new_node->current_data = content;
|
|
||||||
*current_node = new_node;
|
|
||||||
};
|
|
||||||
|
|
||||||
void delete_node(struct link_list_struct **current_node){
|
|
||||||
if(*current_node == NULL){
|
|
||||||
printf ("当前没有结点\n");
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
struct link_list_struct *tmp_node;
|
|
||||||
tmp_node = *current_node;
|
|
||||||
*current_node = (*current_node)->back_node;
|
|
||||||
free (tmp_node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void view_node(struct link_list_struct *current_node){
|
|
||||||
if(current_node == NULL){
|
|
||||||
printf ("当前没有结点\n");
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
printf ("%d\n",current_node->current_data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main ()
|
|
||||||
{
|
|
||||||
enum {add=1,delete,view};
|
|
||||||
struct link_list_struct *current_node=NULL;
|
|
||||||
|
|
||||||
while( true){
|
|
||||||
printf ("1.增加\n");
|
|
||||||
printf ("2.删除\n");
|
|
||||||
printf ("3.查看\n");
|
|
||||||
printf ("请输入:");
|
|
||||||
int pick;
|
|
||||||
scanf_s ("%d",&pick);
|
|
||||||
if(pick==add)
|
|
||||||
{
|
|
||||||
int content;
|
|
||||||
printf ("请输入要添加的数值:");
|
|
||||||
scanf_s ("%d",&content);
|
|
||||||
add_node (¤t_node,content);
|
|
||||||
}
|
|
||||||
else if(pick==delete)
|
|
||||||
{
|
|
||||||
delete_node(¤t_node);
|
|
||||||
}
|
|
||||||
else if(pick==view)
|
|
||||||
{
|
|
||||||
view_node (current_node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
56
c/code/data_struct/queue_array.c
Normal file
56
c/code/data_struct/queue_array.c
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
struct queue
|
||||||
|
{
|
||||||
|
int _arr[10];
|
||||||
|
int _head;
|
||||||
|
int _tail;
|
||||||
|
int amount;
|
||||||
|
};
|
||||||
|
|
||||||
|
void in_queue ( struct queue * _arr_queue , int _content )
|
||||||
|
{
|
||||||
|
if ( _arr_queue -> amount == 10 )
|
||||||
|
{
|
||||||
|
printf ( "队列已满\n" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_arr_queue -> _arr[ _arr_queue -> _head ] = _content;
|
||||||
|
_arr_queue -> _head = ( _arr_queue -> _head + 1 ) % 10;
|
||||||
|
_arr_queue -> amount += 1;
|
||||||
|
printf ( "%d,入队成功\n\n",_content );
|
||||||
|
}
|
||||||
|
|
||||||
|
void out_queue ( struct queue * _arr_queue )
|
||||||
|
{
|
||||||
|
if ( _arr_queue->amount == 0 )
|
||||||
|
{
|
||||||
|
printf ( "队列为空\n\n" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
printf ( "%d,出队成功\n" , _arr_queue -> _arr[ _arr_queue -> _tail ] );
|
||||||
|
_arr_queue -> _tail = ( _arr_queue -> _tail + 1 ) % 10;
|
||||||
|
_arr_queue -> amount -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
struct queue _arr_queue={0};
|
||||||
|
enum {_in=1,_out};
|
||||||
|
int pick,_number;
|
||||||
|
while(1){
|
||||||
|
printf ("1.入站\n");
|
||||||
|
printf ("2.出站\n");
|
||||||
|
printf ("请输入:");
|
||||||
|
scanf_s ("%d",&pick);
|
||||||
|
if(pick==_in){
|
||||||
|
printf ("请输入数字:");
|
||||||
|
scanf_s ("%d",&_number);
|
||||||
|
in_queue (&_arr_queue,_number);
|
||||||
|
}
|
||||||
|
else if(pick==_out){
|
||||||
|
out_queue (&_arr_queue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user