前言:繼續筆記分享!
面試題6:暫無好的解決方法先擱淺一下
面試題7:

#include<stdio.h>
#include<stdlib.h>
typedef struct LIFO{
int *data;
int maxlen;
int top;
}seqstack_t;
typedef struct LIFO1{
int *data;
int maxlen;
int top;
}seqstack_t1;
//建立一個空棧
seqstack_t *CreateStack(int max)
{
seqstack_t *H;
H = (seqstack_t *)malloc(sizeof(seqstack_t));
H->data = (int *)malloc(sizeof(int)*max);
H->maxlen = max;
H->top = 0;
return H;
}
//建立一個空棧
seqstack_t1 *CreateStack1(int max)
{
seqstack_t1 *H;
H = (seqstack_t1 *)malloc(sizeof(seqstack_t1));
H->data = (int *)malloc(sizeof(int)*max);
H->maxlen = max;
H->top = 0;
return H;
}
//擷取棧頂資料的值
int GetTop(seqstack_t1 *H)
{
if(H->top <= 0)
{
printf("棧空\n");
return -1;
}
return H->data[H->top-1];
}
//棧清空
void Clear(seqstack_t *H)
{
H->top=0;
}
//向棧中插入資料
void Push(seqstack_t *H,int m)
{
H->data[H->top]=m;
H->top++;
}
//向棧中插入資料
void Push1(seqstack_t1 *H,int m)
{
H->data[H->top]=m;
H->top++;
}
int Pop(seqstack_t *H)
{
return H->data[H->top];
}
int main()
{
seqstack_t *T=CreateStack(10);
seqstack_t1 *T1=CreateStack1(10);
Push(T,1);
Push(T,2);
Push(T,3);
int i=0;
--T->top;
while(T->top >= 0)
{
Push1(T1,Pop(T));
i++;
--T->top;
}
while(T1->top > 0)
{
printf("data:%-5d",GetTop(T1));
--T1->top;
}
printf("\n");
free(T->data);
free(T);
free(T1->data);
free(T1);
return 0;
}
注:主要要懂棧後進先出LIFO,隊列先進先出FIFO,一個棧彈出,一個壓入,就可以實作隊列!!!
作者:
柳德維出處:
https://www.cnblogs.com/liudw-0215/-------------------------------------------
個性簽名:獨學而無友,則孤陋而寡聞。做一個靈魂有趣的人!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,部落客在此感謝!
萬水千山總是情,打賞一分行不行,是以如果你心情還比較高興,也是可以掃碼打賞部落客,哈哈哈(っ•̀ω•́)っ⁾⁾!