Doubly Linked List,( Aizu - ALDS1_3C )
生活随笔
收集整理的這篇文章主要介紹了
Doubly Linked List,( Aizu - ALDS1_3C )
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接 :?https://vjudge.net/problem/Aizu-ALDS1_3_C
注 :雙向鏈表
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 struct Node{ 5 int key; 6 struct Node *prior,*next; 7 }; 8 9 Node *nil; //創(chuàng)建頭節(jié)點 10 11 Node* list_search(int key) { //搜索鏈返回值為節(jié)點地址 12 Node *cur = nil -> next; 13 while(cur -> key != key && cur != nil) { //當(dāng)key值與鏈中某節(jié)點key相同或到達nil停止 14 cur = cur -> next; 15 } 16 return cur; 17 } 18 19 void init() { //初始化頭節(jié)點 20 nil = (Node *)malloc(sizeof(Node)); //定義一個指針不為其分配內(nèi)存,需要動態(tài)分配內(nèi)存 21 nil -> next = nil; 22 nil -> prior = nil; 23 } 24 25 void print_list() { //打印鏈表 26 Node *cur = nil -> next; //從首節(jié)點開始打印 27 int isf = 0; //判斷空格輸出 28 while(1) { 29 if(cur == nil) break; 30 if(isf++ > 0) printf(" "); 31 printf("%d",cur ->key); 32 cur = cur -> next; 33 } 34 printf("\n"); 35 } 36 void delete_node(Node *t) { 37 if (t == nil) return; //t為頭節(jié)點不做處理 38 t -> prior -> next = t -> next; 39 t -> next -> prior = t -> prior; 40 free(t); //刪除后釋放空間 41 } 42 43 void delete_frist() { 44 delete_node(nil -> next); 45 } 46 47 void delete_last() { 48 delete_node(nil -> prior); 49 } 50 51 void insert(int key) { //理解插入方式 52 Node *x = (Node*)malloc(sizeof(Node)); 53 x -> key = key; 54 x -> next = nil -> next; 55 nil -> next -> prior = x; 56 nil -> next = x; 57 x -> prior = nil; 58 } 59 60 void delete_key(int key) { 61 delete_node(list_search(key)); 62 } 63 int main() 64 { 65 int key, n, i; 66 int size = 0; 67 char com[20]; 68 int np = 0,nd = 0; 69 scanf("%d",&n); 70 init(); 71 for (i = 0;i < n;i++ ) { 72 scanf("%s%d",com,&key); 73 if (com[0] == 'i') { insert(key);np++;size++; } 74 else if(com[0] == 'd') { 75 if (strlen(com) > 6){ 76 if( com[6] == 'F' ) delete_frist(); 77 else if( com[6] == 'L') delete_last(); 78 } 79 else{ 80 delete_key(key); nd++; 81 } 82 size--; 83 } 84 } 85 86 87 print_list() ; 88 89 return 0; 90 }?
轉(zhuǎn)載于:https://www.cnblogs.com/Dicer/p/8509791.html
總結(jié)
以上是生活随笔為你收集整理的Doubly Linked List,( Aizu - ALDS1_3C )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS.Animations.by.Tu
- 下一篇: MySQL输入密码后闪退