編碼定義的變數在執行時的會存放在記憶體中的靜態儲存區、棧區或堆區:
1. 申請一塊連續的空間(陣列),可以存放在上述的三個區中
2. 申請可變長的空間(鍊錶),只能存放在堆區中
其他所有的資料結構在記憶體中存放時,都只能是陣列或者鍊錶的結構,只是在**邏輯上怎麼使用而已。
棧的使用(後進先出):
計算簡單加減乘除式子,**如下:
#include #include #include using namespace std;
int calint(int x, char symbol, int y)
}int calintformula(const char *formula)
symbolstack.push(formula[i]);
}else if(formula[i] == '(' || formula[i] == '*' || formula[i] == '/')else if(formula[i] == ')' )
symbolstack.pop();
}else
i--;
numberstack.push(num);}}
while (symbolstack.top() != '(')
symbolstack.pop();
return numberstack.top();
}int main()
,,, };
const char formula= "2+3*(1+3*5-60/(4-1))";
cout << calintformula(formula) << endl;
return 0;
}
佇列的使用(先進先出):
簡單訊息佇列,**如下:
#include #include using namespace std;
char* runqueue(char *str)
int j=0;
while (!messagequeue.empty())
str[j] = '\0';
return str;
}int main()
此致!
簡單資料結構
一 樹狀陣列 樹狀陣列是一種支援單點修改區間查詢的資料結構,這個陣列是以二進位制的形式儲存的,例如7的二進位制是111,最右邊1代表1,那麼c 7 就是從a 7 往前1個數這個區間所有a陣列值的和,再例如8的二進位制是1000,最右邊的1代表8,那麼c 8 就代表從a 8 往前8個數 1 8 這個區...
簡單資料結構 佇列
第一次發csdn部落格,有點小激動,因為自己看了不少csdn裡的大牛的博文,很崇拜。心想著什麼時候自己也寫一篇。現在是時候了。接觸c語言有三年了,但是僅僅是皮毛,而且在學校也很少用,現在為做畢設,用到佇列,發現已經忘得一乾二淨,於是重新翻書,寫此算做筆記。內容如有不當還請諸位指出。佇列 是一種線性表...
簡單資料結構的實現之順序棧
include using namespace std const int stack init size 100 ifndef sqstack h included define sqstack h included template class sqstack int stacklength e...