双向循环链表
来源:互联网 发布:微电影拍摄软件 编辑:程序博客网 时间:2024/06/07 02:04
#include <stdio.h>struct node{ int num; struct node *next;};typedef struct node Node;typedef Node * Link;void creat_link(Link *head){ //*head = NULL; *head = (Link)malloc(sizeof(Node)); (*head)->next = *head;}void insert_head_node(Link *newnode, Link *head){ (*newnode)->next = (*head)->next; (*head)->next = *newnode;}void insert_tail_node(Link *newnode, Link *head){ Link temp = *head;while(temp->next != *head){ temp = temp->next;}temp->next = *newnode;(*newnode)->next = *head;}int insert_mid_node(Link *newnode, Link *head, int num){ Link temp = (*head)->next; while(temp != *head) { if(temp->num == num){ (*newnode)->next = temp->next; temp->next = *newnode; return 0;}temp = temp->next; }}int delete_node(int num, Link *head){ Link ptr = *head; Link temp = ptr->next; while(temp != *head) { if(temp->num == num){ ptr->next = temp->next; free(temp); temp = NULL; return 0;}ptr = temp;temp = temp->next; }}int reverse_link(Link *head){ if((*head)->next == *head || (*head)->next->next == *head) { return 0; } Link ptr = *head; Link str = ptr->next; Link temp = str->next; while(temp != *head) { str->next = ptr;ptr = str;str = temp;temp = temp->next; } str->next = ptr; (*head)->next = str;}int display_link(Link *head){ Link temp = (*head)->next; while(temp != *head) { printf("%d\n",temp->num);temp = temp->next; }}int main(){ int i; Link head; Link newnode; creat_link(&head); for(i = 0; i < 10; i++) { newnode = (Link)malloc(sizeof(Node));newnode->num = i + 1;insert_head_node(&newnode,&head);//insert_tail_node(&newnode,&head);//insert_mid_node(&newnode,&head); } display_link(&head);#if 1 newnode = (Link)malloc(sizeof(Node)); newnode->num = 5; insert_mid_node(&newnode,&head,8); display_link(&head); delete_node(7,&head); reverse_link(&head); display_link(&head); #endif return 0;}
0 0
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 双向循环链表
- 循环双向链表
- ruby:json
- Nginx配置文件详解
- java容器之Map
- windows上memcache无法设置缓存
- Java eclipse中无法查看源代码
- 双向循环链表
- CVPR 2016-12-21
- Blob 分析算法
- scala 学习(七)——参数传递
- Leetcode 455 Assign Cookies
- HDP学习--YARN Resource Management(01)
- unity调用摄像头进行拍照和保存照片
- 关于指针的浅析---------指针基础部分1
- BZOJ4700