<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ta.in.th/index.php?action=history&amp;feed=atom&amp;title=Linked_List</id>
	<title>Linked List - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ta.in.th/index.php?action=history&amp;feed=atom&amp;title=Linked_List"/>
	<link rel="alternate" type="text/html" href="https://wiki.ta.in.th/index.php?title=Linked_List&amp;action=history"/>
	<updated>2026-06-16T22:59:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0-alpha</generator>
	<entry>
		<id>https://wiki.ta.in.th/index.php?title=Linked_List&amp;diff=86&amp;oldid=prev</id>
		<title>Tata: Created page with &quot; #include&lt;stdio.h&gt;  #include&lt;stdlib.h&gt;    struct Node {  	int val;  	Node* next;  };    Node* new_node(int val) {  	Node* node = (Node*)malloc(sizeof(Node));  	node-&gt;val = val...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.ta.in.th/index.php?title=Linked_List&amp;diff=86&amp;oldid=prev"/>
		<updated>2019-03-07T17:11:47Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; #include&amp;lt;stdio.h&amp;gt;  #include&amp;lt;stdlib.h&amp;gt;    struct Node {  	int val;  	Node* next;  };    Node* new_node(int val) {  	Node* node = (Node*)malloc(sizeof(Node));  	node-&amp;gt;val = val...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; #include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include&amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 struct Node {&lt;br /&gt;
 	int val;&lt;br /&gt;
 	Node* next;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 Node* new_node(int val) {&lt;br /&gt;
 	Node* node = (Node*)malloc(sizeof(Node));&lt;br /&gt;
 	node-&amp;gt;val = val;&lt;br /&gt;
 	node-&amp;gt;next = NULL;&lt;br /&gt;
 	return node;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // ถ้าไม่เจอจะ return โหนดสุดท้าย&lt;br /&gt;
 Node* find_parent(Node* node, int val) {&lt;br /&gt;
 	if(node == NULL)return NULL;&lt;br /&gt;
 	if(node-&amp;gt;next == NULL)return node;&lt;br /&gt;
 	if(node-&amp;gt;next-&amp;gt;val == val)return node;&lt;br /&gt;
 	return find_parent(node-&amp;gt;next, val);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 Node* find(Node* node, int val) {&lt;br /&gt;
 	if(node == NULL)return NULL;&lt;br /&gt;
 	if(node-&amp;gt;val == val)return node;&lt;br /&gt;
 	return find(node-&amp;gt;next, val);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void insert(Node* root, int val) {&lt;br /&gt;
 	Node* node = new_node(val);&lt;br /&gt;
 	node-&amp;gt;next = root-&amp;gt;next;&lt;br /&gt;
 	root-&amp;gt;next = node;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void insert_before(Node* root, int p_val, int val) {&lt;br /&gt;
 	Node* parent = find_parent(root, p_val);&lt;br /&gt;
 	if(parent == NULL)return;&lt;br /&gt;
 	insert(parent, val);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void delete_node(Node* node, int val) {&lt;br /&gt;
 	Node* parent = find_parent(node, val);&lt;br /&gt;
 	if(parent == NULL)return;&lt;br /&gt;
 	if(parent-&amp;gt;next == NULL)return;&lt;br /&gt;
 	Node* tmp = parent-&amp;gt;next;&lt;br /&gt;
 	parent-&amp;gt;next = parent-&amp;gt;next-&amp;gt;next;&lt;br /&gt;
 	free(tmp);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void print_recursive(Node* node) {&lt;br /&gt;
 	if(node == NULL)return;&lt;br /&gt;
 	printf(&amp;quot;%d &amp;quot;, node-&amp;gt;val);&lt;br /&gt;
 	print_recursive(node-&amp;gt;next);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void print_for(Node* node) {&lt;br /&gt;
 	for( ; node != NULL; node = node-&amp;gt;next)&lt;br /&gt;
 	printf(&amp;quot;%d &amp;quot;, node-&amp;gt;val);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char *argv[])&lt;br /&gt;
 {&lt;br /&gt;
 	Node* root = new_node(0);&lt;br /&gt;
 &lt;br /&gt;
 	for(int i = 1; i &amp;lt;= 10; i++) {&lt;br /&gt;
 		insert(root, i);&lt;br /&gt;
 		print_recursive(root-&amp;gt;next);&lt;br /&gt;
 		printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 	printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 	for(int i = 1; i &amp;lt;= 10; i += 4) {&lt;br /&gt;
 		delete_node(root, i);&lt;br /&gt;
 		print_for(root-&amp;gt;next);&lt;br /&gt;
 		printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 	printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 	for(int i = 1; i &amp;lt;= 10; i += 3) {&lt;br /&gt;
 		insert_before(root, i, i * 2);&lt;br /&gt;
 		print_for(root-&amp;gt;next);&lt;br /&gt;
 		printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 	printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 getchar();&lt;br /&gt;
 &lt;br /&gt;
 return 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Tata</name></author>
		
	</entry>
</feed>