1樓:匿名使用者
樓主 ,這是我用連結串列結構實現的棧,以下是演算法,順序表部分沒寫,最近沒什麼時間,不好意思啦。。
#include
#include//包括malloc()和realloc()函式的標頭檔案
#include//包括pow()函式的標頭檔案
#define max_stack_size 20
#define addersize 10
typedef char elemtype;
typedef structsqstack;
void initstack (sqstack *s)
void pushstack(sqstack *s,elemtype e)
*(s->top)=e;
s->top++;
}void popstack(sqstack *s,elemtype *e)
void clearstack(sqstack *s) //清空棧
void destroystack(sqstack *s)
s->base=null;
s->top=s->base;
s->stacksize=0;
}int counterstack(sqstack s)
void main()
getchar();
length=counterstack(p); //有錯時更容易檢測到。。
printf("numbers'length:%d\n",length);
for(i=0;i
//二進位制pow(8,i)改為pow(2,i),十六進位制用if else如/**/中所示
}/* if('0'
else if('a'
else if('a'
printf("the answer is:%d\n",sum);}
2樓:匿名使用者
不好好學習......
設計演算法,在順序表上實現建立棧、入棧和出棧操作,將字元abcdef依次入棧,並出棧輸出。
3樓:匿名使用者
恍然看見是設計演算法,我都已經幫你把程式都寫好了,演算法這個東西,怎麼說呢,棧是一種抽象資料型別,具有先進後出的特性,順序表說白了就是一個陣列而已,所以棧首先要有個順序表,還有一個基指標,每次壓棧的時候,先讓基指標加一,再讓順序表中該位置為該元素,出棧的時候就是返回該順序表中當前基指標位置處的元素,然後讓基指標減一,建立棧就是開闢一段記憶體單元並初始化基指標。我寫的**如下:
// file :stack.h
#ifndef _stack_h_
#define _stack_h_
#define max_length 128typedef struct seqlistseqlist;
typedef struct stack
stack;
void makestack(stack *stack);
void disposestack(stack *stack);
char pop(stack *stack);
void push(stack *stack,char element);
#endif
// file: stack.cpp
#include "stack.h"
#include
void makestack(stack *stack)void disposestack(stack *stack)char pop(stack *stack)
定義棧的順序儲存結構,實現入棧操作,出棧操作,判斷棧為空的基本操作,設計演算法,
4樓:
下面是一個棧的演算法
#include
#include
typedef struct nodenode;
void push(node** ptop, int idata)else
}void pop(node** ptop)else
}void print_stack(node* ptop)}int main()
print_stack(ptop);
for (ii=1; ii<10; ii++)return 0;}
C語言的壓棧和入棧出棧什麼意思啊誰有什麼好方法理解一
棧的特點是先進後出。你把棧當成一個水桶,把書一本本放進去,然後最先放的書就被壓在最下面,所以最先進去的,最後出來。壓棧就是入棧就是把書放進水桶,出棧就是把書拿出來。壓棧 和 出棧 是什麼意思啊 可以理解成機槍的彈夾,彈夾就是一個棧,子彈一顆一顆壓進去,就是壓棧,有個順序特點就是先進後出,後進先出,出...
程序設計中,堆和棧比較重要。棧訪問速度大於堆,而且編譯器可以修改棧大小,這個值可以隨意設定嗎
學習電腦程式設計多年了,在程式設計方面也算有一番見解,希望這些經驗能對題主有所幫助。實際上,當我們不考慮快取時,堆和堆疊的速度是絕對沒有差別的。當我們考慮快取時,因為堆疊是當前 段中最常被訪問的記憶體,它在快取上的概率幾乎是100 換句話說,不會有快取遺漏 不要使用異常,因為我們討論的是一般情況 一...
設計n個數的排序演算法,並要求計算演算法複雜度
氣泡排序的演算法時間複雜度上o n 2 氣泡排序是這樣實現的 首先將所有待排序的數字放入工作列表中。從列表的第一個數字到倒數第二個數字,逐個檢查 若某一位上的數字大於他的下一位,則將它與它的下一位交換。重複2號步驟,直至再也不能交換。氣泡排序的平均時間複雜度與插入排序相同,也是平方級的,但也是非常容...