Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <cstdlib>
- struct List{
- List *next, *prev;
- int val;
- };
- List *head, *tail;
- int stack_size;
- List* new_node(int val){
- List* tmp = (List*)malloc(sizeof(List));
- tmp->next = NULL;
- tmp->prev = NULL;
- tmp->val = val;
- return tmp;
- }
- bool stack_empty(){
- return stack_size == 0;
- }
- void stack_push(int val){
- ++stack_size;
- if(stack_size == 1){
- head = new_node(val);
- tail = head;
- return;
- }
- tail->next = new_node(val);
- tail->next->prev = tail;
- tail = tail->next;
- }
- void stack_pop(){
- --stack_size;
- if(stack_size == 0){
- free(tail);
- head = tail = NULL;
- return;
- }
- tail = tail->prev;
- free(tail->next);
- tail->next = NULL;
- }
- int stack_top(){
- return tail->val;
- }
- void dec2bin(int num){
- for(int i = 0; i < 8; ++i){
- stack_push(num & 1);
- num >>= 1;
- }
- while(not stack_empty()){
- printf("%d", stack_top());
- stack_pop();
- }
- }
- int main(){
- head = NULL;
- tail = NULL;
- const char* str = "THANKS";
- for(int i = 0; str[i] != 0; ++i){
- dec2bin(str[i]);
- printf(" ");
- }
- printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement