鍊錶實現棧

2021-07-10 15:57:25 字數 1652 閱讀 6251

#include #include typedef int datatype;               //自定義資料型別,假定為整型

struct node; //單鏈表結點型別

typedef struct node *pnode; //結點指標型別

typedef struct node //單鏈表結點結構

node;

typedef struct linkstack //鍊錶棧定義

linkstack;

typedef struct linkstack * plinkstack; //鍊錶棧的指標型別

//建立乙個的空棧

plinkstack createemptystack(void)

//判斷棧是否為空棧

int isemptystack(plinkstack stack)

//進棧,成功返回1,失敗返回0

int push(plinkstack stack,datatype x)

else

}//出棧,成功返回1,失敗返回0

int pop(plinkstack stack)

else

}//取棧頂元素

datatype gettop(plinkstack stack)

return (stack->top->info);

}//顯示棧內所有元素

void showstack(plinkstack stack)

printf("%d ",p->info); //顯示最後乙個元素

printf("-->底\n");

}}//把棧置空

void setempty(plinkstack stack)

//把棧銷毀

void destroystack(plinkstack stack)

}int main( )

else

break;

case '4':

if( pop(stack))

else

break;

case '5':

data=gettop(stack);

printf("棧頂值為:%d\n",data);

break;

case '6':

printf("棧當前內容:");

showstack(stack);

break;

case '7':

setempty(stack);

printf("棧當前內容:");

showstack(stack);

break;

case '8':

destroystack(stack);

printf("成功將棧銷毀!\n");

break;

default:

break;

}printf("\n");

fflush(stdin); /*清空緩衝區,也可以使用rewind(stdin);*/

}while( input != 'q' );

return 0;

}

鍊錶實現棧

include include typedef int datatype 自定義資料型別,假定為整型 struct node 單鏈表結點型別 typedef struct node pnode 結點指標型別 typedef struct node 單鏈表結點結構 node typedef struc...

棧(鍊錶實現)

1.思路 節點結構體為 乙個int數值,乙個指向下乙個節點的指標struct next。設定乙個煉表頭節點p,每次入棧的節點都放在p點的下乙個節點,前面的節點則依次往後推移一位 每次出棧時將p next對應節點值輸出,並將p next指向p next next 當p next為nullptr則表明棧...

用鍊錶實現棧

基於介面實現 public inte ce stack引用到上次已經實現的鍊錶 linkedlistlist new linkedlist 1 獲取棧的長度 獲取棧的長度 return public int getsize 2 判斷棧是否為空 判斷棧是否為空 return public boolea...