Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX_STRING_LENGHT 1000
- #define N 10
- typedef struct Stack
- {
- char *name;
- char *type;
- char *CPU;
- int *CPUfrequency;
- int *videomemoryamount;
- int *videomemoryfrequency;
- int *capacity;
- char *connectors;
- char *cooling;
- int *nummonitors;
- //const char *string;
- struct Stack *next;
- } Stack;
- Stack *init()
- {
- Stack *head=NULL;
- //head->next=NULL;
- return head;
- }
- void chertochka()
- {
- printf("-----------------------------------------------------------------------------------------\n");
- }
- void zagolovok()
- {
- chertochka();
- printf("|%21s|%6s|%5s|%5s|%5s|%5s|%5s|%15s|%5s|%6s|\n","name","type","CPU","CPUfr","vma","vmfr","cpcty","connectors","cool","nummon");
- chertochka();
- }
- void push(Stack **head,char *name,char *type,char *CPU,int *CPUfrequency,int *videomemoryamount,int *videomemoryfrequency,int *capacity,char *connectors,char *cooling,int *nummonitors)
- {
- Stack *tmp=malloc(sizeof(Stack));
- tmp->next=*head;
- tmp->name=name;
- tmp->type=type;
- tmp->CPU=CPU;
- tmp->CPUfrequency=CPUfrequency;
- tmp->videomemoryamount=videomemoryamount;
- tmp->videomemoryfrequency=videomemoryfrequency;
- tmp->capacity=capacity;
- tmp->connectors=connectors;
- tmp->cooling=cooling;
- tmp->nummonitors=nummonitors;
- *head=tmp;
- }
- void pop(Stack **head)
- {
- Stack* prev = NULL;
- char *name;
- char *type;
- char *CPU;
- int *CPUfrequency;
- int *videomemoryamount;
- int *videomemoryfrequency;
- int *capacity;
- char *connectors;
- char *cooling;
- int *nummonitors;
- prev = (*head);
- name = prev->name;
- type = prev->type;
- CPU = prev->CPU;
- CPUfrequency = prev->CPUfrequency;
- videomemoryamount = prev->videomemoryamount;
- videomemoryfrequency = prev->videomemoryfrequency;
- capacity = prev->capacity;
- connectors = prev->connectors;
- cooling = prev->cooling;
- nummonitors = prev->nummonitors;
- (*head) = (*head)->next;
- free(prev);
- printf("|%21s|%6s|%5s|%5d|%5d|%5d|%5d|%15s|%5s|%6d|\n",name, type, CPU, CPUfrequency, videomemoryamount, videomemoryfrequency,capacity,connectors,cooling,nummonitors);
- }
- void peek(const Stack *head)
- {
- printf("|%21s|%6s|%5s|%5d|%5d|%5d|%5d|%15s|%5s|%6d|\n",head->name, head->type, head->CPU, head->CPUfrequency, head->videomemoryamount, head->videomemoryfrequency,head->capacity,head->connectors,head->cooling,head->nummonitors);
- }
- void printStack(const Stack *head)
- {
- zagolovok();
- while (head)
- {
- printf("|%21s|%6s|%5s|%5d|%5d|%5d|%5d|%15s|%5s|%6d|\n",head->name, head->type, head->CPU, head->CPUfrequency, head->videomemoryamount, head->videomemoryfrequency,head->capacity,head->connectors,head->cooling,head->nummonitors);
- head=head->next;
- }
- chertochka();
- }
- void deleteStack(Stack **head)
- {
- Stack *prev=NULL;
- while((*head)->next)
- {
- prev=(*head);
- *head=(*head)->next;
- free(prev);
- }
- free(*head);
- printf("deleting success\n");
- }
- int main()
- {
- FILE *f;
- int i;
- Stack *head;
- char **name=malloc(N*sizeof(char*));
- char **type=malloc(N*sizeof(char*));
- char **CPU=malloc(N*sizeof(char*));
- int **CPUfrequency=malloc(N*sizeof(int*));
- int **videomemoryamount=malloc(N*sizeof(int*));
- int **videomemoryfrequency=malloc(N*sizeof(int*));
- int **capacity=malloc(N*sizeof(int*));
- char **connectors=malloc(N*sizeof(char*));
- char **cooling=malloc(N*sizeof(char*));
- int **nummonitors=malloc(N*sizeof(int*));
- for (i=0;i<N;i++)
- {
- name[i]=(char*)malloc(MAX_STRING_LENGHT);
- type[i]=(char*)malloc(MAX_STRING_LENGHT);
- CPU[i]=(char*)malloc(MAX_STRING_LENGHT);
- CPUfrequency[i]=(int*)malloc(sizeof(int));
- videomemoryamount[i]=(int*)malloc(sizeof(int));
- videomemoryfrequency[i]=(int*)malloc(sizeof(int));
- capacity[i]=(int*)malloc(sizeof(int));
- connectors[i]=(char*)malloc(MAX_STRING_LENGHT);
- cooling[i]=(char*)malloc(MAX_STRING_LENGHT);
- nummonitors[i]=(int*)malloc(sizeof(int));
- }
- head=init();
- if ( (f = fopen("file.txt", "r")) == NULL )
- {
- printf("NULL");
- exit(0);
- }
- for(i=0;i<N;i++)
- {
- fscanf(f,"%s%s%s%d%d%d%d%s%s%d", name[i], type[i], CPU[i], &CPUfrequency[i], &videomemoryamount[i], &videomemoryfrequency[i],&capacity[i],connectors[i],cooling[i],&nummonitors[i]);
- //fgets(strf,MAX_STRING_LENGHT,f);
- push(&head,name[i], type[i], CPU[i], CPUfrequency[i], videomemoryamount[i], videomemoryfrequency[i],capacity[i],connectors[i],cooling[i],nummonitors[i]);
- //printStack(head);
- }
- printStack(head);
- printf("\nPEEK:");
- peek(head);
- putchar('\n');
- printStack(head);
- printf("\nPOP:");
- pop(&head);
- putchar('\n');
- printStack(head);
- putchar('\n');
- deleteStack(&head);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement