1.使用鏈結串列建立堆疊。撰寫程式可以讓使用者由鍵盤輸入元素,在堆疊中新增及刪除元素。此外當堆疊空的時候要拒絕使用者刪除元素。每當堆疊有增加或刪除元素的動作完成後,程式都必須顯示目前還在堆疊中的元素之排列情況。
以上為題目,請問大大們該怎麼做。
2005-12-09 16:37:08 · 2 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
我用的編譯器是virtual c++,我照你所說的該了一下,但還是也1個錯,1個警告,麻煩大大你看一下。
(1)error C2065: 'system' : undeclared identifier
(2)function should return a value; 'void' return type assumed
2005-12-10 03:09:34 · update #1
我還有個問題要請教大大一下:
你這程式的寫法算是堆疊用鏈結串列來表示嗎?若是用鏈結串列來表示的話那不是不需要預設堆疊的大小,若有一個節點A,若我加入一節點B則是加在A的前面,把B- link=A,反正就是增加跟刪除都在同一端,這樣才叫用堆疊表示成鏈結串列列,不知我說的對不對?
2005-12-10 08:30:43 · update #2
那改malloc()宣告而用陣列會很難嗎?
我學的是c++而不是c,所以看c的程式比較不適應,且我才只學過陣列跟涵式外加一點指標,像要用class這種我就不會了。所以麻煩大大能否幫我改一下@@"
2005-12-11 04:08:06 · update #3
如果你有空的話順便幫我改一下不管是輸入或輸出,都會直接列出目前堆疊中的狀態。
2005-12-13 15:14:27 · update #4
這題我在等你幾天,希望你能幫我完成。
2005-12-13 15:15:21 · update #5
這題在另一個地方我已幫你解決,請考參網址:
http://tw.knowledge.yahoo.com/question/?qid=1405120915827
話說這題花了我不少時間,你要給我40點的話,我會更高興^___^
貼上原有內容:
變數stack_size是堆疊的大小,預設是10,可以自己開,其他程式不用動
另外若複製程式碼時,請將全形空白改成Tab,不然編譯會錯誤
建議用Word將全形空白全部取代成2個半形空白
#include
#define stack_size 10
int stack_flag=0;
struct list{
int ele;
struct list *ptr;
};
int main(){
struct list stack[stack_size],*p;
int cmd,n,i;
int exit_pro=0;
while(1){
printf("堆疊模擬:\n");
printf("請輸入數字 1.新增元素 2.刪除元素 3.列印元素 若要結束請輸入其他數字:");
scanf("%d",&cmd);
system("cls");
switch(cmd){
case 1:
printf("請輸入插入的元素:");
scanf("%d",&n);
if(stack_flag < stack_size){
stack[stack_flag].ele=n;
if(stack_flag) stack[stack_flag-1].ptr=&stack[stack_flag];
stack[stack_flag++].ptr=NULL;
}else printf("堆疊已滿,無法新增!!\n");
break;
case 2:
if(stack_flag){
stack[--stack_flag].ptr=NULL;
printf("堆疊已刪除\n");
}else printf("堆疊目前是空的,無法刪除!!\n");
break;
case 3:
if(!stack_flag)
printf("目前堆疊沒有任何元素\n");
else{
p=&stack[0];
i=0;
while(p){
printf("元素%d的值:%d\n",i,p->ele);
p=p->ptr;
i++;
}
}
break;
default:
exit_pro=1;
}
printf("\n");
if(exit_pro) break;
}
}
2005-12-10 10:08:27 補充:
真剛好,我也是用VC++跑
不然你試試看把system("cls");拿掉
int main()改成void main()
應該就沒1錯誤、1警告
2005-12-10 22:39:00 補充:
是沒錯,我只是沒用malloc()宣告而用陣列
我想這部分你還是可以參考
堆疊是先進後出
也就是你說的新增、刪除都在同端
2005-12-13 00:10:05 補充:
C++本身可以寫C
只不過函式庫要改
#include 改成
#include
print就是cout
scanf就是cin
最近比較小忙一點,希望我有空的時候來得及幫你改
2005-12-09 17:35:21 · answer #1 · answered by Joybo 5 · 0⤊ 0⤋
回應 2005-12-10 08:09:34 (1)error C2065: 'system' : undeclared identifier
#include
int system(const char *);
2005-12-14 15:24:10 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋