diff --git a/Project2/Debug/Project2.log b/Project2/Debug/Project2.log index abd2742..6825cb4 100644 --- a/Project2/Debug/Project2.log +++ b/Project2/Debug/Project2.log @@ -1,25 +1,2 @@ - array_queue.c - array_stack.c -C:\code\lencode\C_DS_Algo\array_queue.c(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 -C:\code\lencode\C_DS_Algo\array_queue.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 - (编译源文件“array_queue.c”) - -C:\code\lencode\C_DS_Algo\array_queue.c(22,5): warning C4013: “memset”未定义;假设外部返回 int -C:\code\lencode\C_DS_Algo\array_stack.c(12,5): warning C4013: “memset”未定义;假设外部返回 int - linked_list.c - linked_list_stack.c -C:\code\lencode\C_DS_Algo\linked_list_stack.c(26,3): warning C4098: “push_stack_linked”:“void”函数返回值 - main.c -C:\code\lencode\C_DS_Algo\array_queue.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 - (编译源文件“main.c”) - -C:\code\lencode\C_DS_Algo\main.c(39,22): warning C4013: “init_array_queue”未定义;假设外部返回 int -C:\code\lencode\C_DS_Algo\main.c(39,18): warning C4047: “初始化”:“array_queue *”与“int”的间接级别不同 - sq_list.c -C:\code\lencode\C_DS_Algo\sq_list.c(107,9): warning C4033: “locate_list”必须返回值 -C:\code\lencode\C_DS_Algo\sq_list.c(117,9): warning C4033: “locate_list”必须返回值 -C:\code\lencode\C_DS_Algo\sq_list.c(171,34): warning C4047: “函数”:“int”与“sq_list *”的间接级别不同 -C:\code\lencode\C_DS_Algo\sq_list.c(171,34): warning C4024: “locate_list”: 形参和实参 2 的类型不同 - 正在生成代码... -C:\code\lencode\C_DS_Algo\sq_list.c(121,1): warning C4715: “locate_list”: 不是所有的控件路径都返回值 + main.c Project2.vcxproj -> C:\code\lencode\C_DS_Algo\Debug\Project2.exe diff --git a/Project2/Debug/Project2.tlog/CL.command.1.tlog b/Project2/Debug/Project2.tlog/CL.command.1.tlog index feca5c7..9877c83 100644 Binary files a/Project2/Debug/Project2.tlog/CL.command.1.tlog and b/Project2/Debug/Project2.tlog/CL.command.1.tlog differ diff --git a/Project2/Debug/Project2.tlog/CL.read.1.tlog b/Project2/Debug/Project2.tlog/CL.read.1.tlog index 84779e6..6ea31f5 100644 Binary files a/Project2/Debug/Project2.tlog/CL.read.1.tlog and b/Project2/Debug/Project2.tlog/CL.read.1.tlog differ diff --git a/Project2/Debug/Project2.tlog/CL.write.1.tlog b/Project2/Debug/Project2.tlog/CL.write.1.tlog index fa359a3..ab93b86 100644 Binary files a/Project2/Debug/Project2.tlog/CL.write.1.tlog and b/Project2/Debug/Project2.tlog/CL.write.1.tlog differ diff --git a/Project2/Debug/Project2.tlog/link.read.1.tlog b/Project2/Debug/Project2.tlog/link.read.1.tlog index 75510a2..4190c56 100644 Binary files a/Project2/Debug/Project2.tlog/link.read.1.tlog and b/Project2/Debug/Project2.tlog/link.read.1.tlog differ diff --git a/Project2/Debug/linked_list.obj.enc b/Project2/Debug/linked_list.obj.enc new file mode 100644 index 0000000..0f64bd8 Binary files /dev/null and b/Project2/Debug/linked_list.obj.enc differ diff --git a/Project2/Debug/main.obj.enc b/Project2/Debug/main.obj.enc new file mode 100644 index 0000000..2ce2607 Binary files /dev/null and b/Project2/Debug/main.obj.enc differ diff --git a/linked_list.c b/linked_list.c index c53bc05..ef7be3f 100644 --- a/linked_list.c +++ b/linked_list.c @@ -33,10 +33,9 @@ void replace_node(node* n, elem_type value) } // ڵ -void insert_node(node* head, elem_type value) +void insert_node(node* head,node *new_node) { - node* new_node = init_node(value); - new_node->next = head->next->next; + new_node->next = head->next; head->next = new_node; } @@ -54,14 +53,16 @@ address_node *find_node(node* head, elem_type value) printf("ڴʧ\n"); return NULL; } - n->n = 0; - n->p = head; - while (head != NULL) + n->n = 1; + n->p = head->next; + node *temp = head; + while (temp->next != NULL) { - if (head->value == value) + if (temp->value == value) return n; n->n += 1; - head = head->next; + temp = temp->next; + n->p = temp; } printf("޷ҵڵ\n"); free(n); @@ -71,20 +72,24 @@ address_node *find_node(node* head, elem_type value) // ӡ void print_node_list(node* head) { - while (head->next != NULL) + node* head_1 = head; + printf("[%d ",head_1->value); + while (head_1->next != NULL) { - head = head->next; - printf("%d ", head->value); + head_1 = head_1->next; + printf("%d ", head_1->value); } + printf("]\n"); } // int get_node_list(node* head) { - int i = 0; - while (head->next != NULL) + node *head_1 = head; + int i = 1; + while (head_1->next != NULL) { - head = head->next; + head_1 = head_1->next; i++; } printf("Ϊ%d\n", i); @@ -93,13 +98,16 @@ int get_node_list(node* head) // Ԫ -elem_type get_node_value(node* head,int pos,elem_type value) +elem_type get_node_value(node* head,int pos) { + node* head_1 = head; int i = 1; - while (i <= pos) + while (i < pos && head_1) { - head = head->next; + head_1 = head_1->next; i++; } - return head->value; + if (head_1 == NULL || i != pos) + return; + return head_1->value; } \ No newline at end of file diff --git a/linked_list.h b/linked_list.h index 9419e19..15eb8c7 100644 --- a/linked_list.h +++ b/linked_list.h @@ -11,7 +11,7 @@ typedef struct node typedef struct address_node { int n; - node* p; + elem_type * p; }address_node; @@ -25,7 +25,7 @@ void delete_node(node* n); void replace_node (node* n, elem_type value); // ڵ -void insert_node(node* head, elem_type value); +void insert_node(node* head,node *new_node); //ʽڵ int get_node(node* n); @@ -40,7 +40,7 @@ void print_node_list(node* head); int get_node_list(node* head); // -elem_type get_node_value(node* head,int pos,elem_type value); +elem_type get_node_value(node* head,int pos); #endif diff --git a/main.c b/main.c index f59126d..bae0d69 100644 --- a/main.c +++ b/main.c @@ -1,9 +1,7 @@ #include #include #include -#include "array_stack.h" -#include "sq_list.h" -#include "array_queue.h" +#include "linked_list.h" int main(void) { @@ -36,7 +34,7 @@ int main(void) - array_queue *q = init_array_queue(); + /* array_queue *q = init_array_queue(); push_array_queue(q,0); push_array_queue(q,1); push_array_queue(q,2); @@ -46,7 +44,23 @@ int main(void) print_array_queue(q); printf("----------\n"); push_array_queue(q, 666); - print_array_queue(q); + print_array_queue(q);*/ + + node* q1 = init_node(1); + node* q2 = init_node(2); + node* q3 = init_node(3); + node* q4 = init_node(4); + q1->next = q2; + q2->next = q3; + q3->next = q4; + //address_node *n = find_node(q1, 3); + // printf("%d\n %p\n", n->n,n->p + //int e = get_node_list(q1); + node* q2_3 = init_node(0); + insert_node(q2, q2_3); + print_node_list(q1); + delete_node(q2); + print_node_list(q1); printf("Hello World!\n"); system("pause"); return 0;