Startpunkten

This commit is contained in:
2026-03-05 13:31:50 +01:00
commit 86a20ae0e1
16 changed files with 1305 additions and 0 deletions

50
Lab2/tree.c Normal file
View File

@@ -0,0 +1,50 @@
/*
* Laboration 2 i C och UNIX
*
* Komplett shell
* =========================================
*
* Christian Ohlsson, di7chro@cse.kau.se
* Stefan Sonesson, di7stes@cse.kau.se
*
* Karlstads Universitet, 991209
*
*
*===========================================
*/
#include "tree.h"
treePtr tree=NULL;
extern char *symTable[];
/*Skapar en nod med ett visst metatecken*/
treePtr makeNode(int op,treePtr left,treePtr right) {
treePtr tmp = malloc(sizeof(treeNode));
tmp->nodeType = op;
tmp->index = -1;
tmp->right = right;
tmp->left = left;
return tmp;
}
/*Skapar ett löv som innehåller ett kommando*/
treePtr makeLeaf(int index) {
treePtr tmp = malloc(sizeof(treeNode));
tmp->nodeType = 0;
tmp->index = index;
tmp->right = tmp->left = NULL;
return tmp;
}
/*Skriver ut trädet på skärmen*/
void printTree(treePtr tPtr){
char str[10];
if(tPtr == NULL) ;
else{
if(!tPtr->nodeType) /*Om det är ett löv...(kommando eller arg)*/
sprintf(str,"%s---%d",symTable[tPtr->index],tPtr->nodeType);
else /*Vi har ett metatecken!*/
sprintf(str,"%d",tPtr->nodeType);
puts(str);
printTree(tPtr->left);
printTree(tPtr->right);
}
}