2024-11-06 15:44:28 +01:00
|
|
|
const std = @import("std");
|
|
|
|
|
|
|
|
pub fn LLIst (comptime T: type) type {
|
|
|
|
return struct {
|
|
|
|
const Self = @This();
|
2024-11-06 16:07:42 +01:00
|
|
|
first: *Node(T),
|
|
|
|
//TODO Liste mit allen Nodes erstellen
|
|
|
|
|
|
|
|
pub fn init(this: *Self) !void {
|
|
|
|
//TODO Heap mit allocater nutzen
|
|
|
|
var node: Node(T) = undefined;
|
|
|
|
node.init(69);
|
|
|
|
try node.printNode();
|
|
|
|
this.first = &node;
|
2024-11-06 15:44:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn deinit() void {
|
2024-11-06 15:46:19 +01:00
|
|
|
//TODO
|
2024-11-06 15:44:28 +01:00
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2024-11-06 16:07:42 +01:00
|
|
|
pub fn Node (comptime T: type) type {
|
2024-11-06 15:44:28 +01:00
|
|
|
return struct {
|
|
|
|
const Self = @This();
|
2024-11-06 16:07:42 +01:00
|
|
|
next: *Self, //? Nächste Node in der Liste
|
2024-11-06 15:44:28 +01:00
|
|
|
|
2024-11-06 16:07:42 +01:00
|
|
|
position: i64, //? Position der Node in der List, später übergeben mit zB List.len
|
|
|
|
value: T,
|
2024-11-06 15:44:28 +01:00
|
|
|
|
2024-11-06 16:07:42 +01:00
|
|
|
pub fn init(this: *Self, value: T) void {
|
|
|
|
this.value = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn printNode(this: *Self) !void {
|
|
|
|
const writer = std.io.getStdOut().writer();
|
|
|
|
try writer.print("Value: {any} \n", .{this.value});
|
2024-11-06 15:44:28 +01:00
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn main() !void {
|
2024-11-06 16:07:42 +01:00
|
|
|
var testList: LLIst(u64) = undefined;
|
|
|
|
try testList.init();
|
2024-11-06 15:44:28 +01:00
|
|
|
}
|