日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言is stack empty,C语言实现栈的问题

發(fā)布時間:2025/3/12 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言is stack empty,C语言实现栈的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么代碼沒有正常輸出?

#include

#include

#include "stack.h"

int main()

{

Stack S;

int isEmpty;

printf("##########棧操作########\n");

S = CreateStack();

printf("輸出棧中元素\n");

return 0;

}

下面是stack.h代碼

#ifndef _STACK_H

#define _STACK_H

typedef int ElementType;

struct StackNode;

typedef struct StackNode *PtrToStackNode;

typedef PtrToStackNode Stack;

int IsEmpty( Stack S );

Stack CreateStack( void );

void DisposeStack( Stack S );

void MakeEmpty( Stack S );

void Push( ElementType E, Stack S );

ElementType Top( Stack S );

void Pop( Stack S );

/*實現(xiàn)棧---帶特殊頭結(jié)點的鏈表*/

struct StackNode

{

ElementType Element;

PtrToStackNode Next;

};

#endif //LINKEDLIST_STACK_H

int IsEmpty( Stack S )

{

return S->Next == NULL;

}

Stack CreateStack( void )

{

Stack S;

printf("What do you echo?\n");

S = malloc( sizeof( struct StackNode ) );

if( S == NULL )

exit(1);

MakeEmpty( S );

printf("\nIs something wrong here?\n");

return S;

}

void MakeEmpty( Stack S )

{

printf("\nMakeEmpty Stack\n");

int tmp;

if( S == NULL )

{

printf("S == NULL\n");

exit(1);

}

else

{

tmp = IsEmpty(S);

printf("tmp is%d\n",tmp);

while( !IsEmpty( S ) ){

Pop( S );

}

}

}

void Pop( Stack S )

{

PtrToStackNode FirstCell;

printf("Pop Stack\n");

if( IsEmpty( S ) )

{

printf("Pop Empty Stack\n");

exit(0);

}

else

{

printf("free firstCell\n");

FirstCell = S->Next;

S->Next = S->Next->Next;

free( FirstCell );

}

}

void Push( ElementType E, Stack S )

{

PtrToStackNode TmpCell;

TmpCell = malloc( sizeof( struct StackNode ) );

if( TmpCell == NULL )

exit(0);

else

{

TmpCell->Element = E;

TmpCell->Next = S->Next;

S->Next = TmpCell;

}

}

void DisplayStack( Stack S )

{

if( S == NULL )

exit(0);

else

{

while( S->Next != NULL){

printf("echo something");

printf("***%d***",S->Element);

S = S->Next;

}

}

}

程序執(zhí)行時輸出

debug時初始化的Stack是空的,為什么程序跑起來的時候就不為空了呢?

為什么“輸出棧中元素”這個字符串沒有輸出啊!

望指教!

總結(jié)

以上是生活随笔為你收集整理的c语言is stack empty,C语言实现栈的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。