c++ 链表相关
2012-05-02 23:21
106 查看
#include <stdio.h> #include <stdlib.h> #include <string.h> #define ok 1 #define error 0 struct linklist { int id; struct linklist *next; }; int init_linklist(struct linklist **head); int insert_linklist(struct linklist *head); int traver_linklist(struct linklist *head); int chang_linklist(struct linklist **head); int main(int argc,char *argv[]) { int i=0; struct linklist *head; init_linklist(&head); while (i < 5) { insert_linklist(head); i++; } traver_linklist(head); chang_linklist(&head); traver_linklist(head); return ok; } int init_linklist(struct linklist **head) { *head = (struct linklist *)malloc(sizeof(struct linklist)); if (NULL == (*head)) { printf("init error\n"); return error; } memset(*head,0,sizeof(struct linklist)); (*head)->next = NULL; return ok; } int insert_linklist(struct linklist *head) { struct linklist *s; struct linklist *p = head->next; struct linklist *upper = head; s = (struct linklist *)malloc(sizeof(struct linklist)); if (NULL == s) { printf("init error\n"); return error; } memset(s,0,sizeof(struct linklist)); printf("please input the num:\t"); scanf("%d",&s->id); s->next = NULL; while ( p != NULL && p->id <s->id) { upper = p; p = p->next; } s->next = p; upper->next = s; return ok; } int traver_linklist(struct linklist *head) { struct linklist *p; p = head->next ; while ( p!= NULL) { printf("%d--",p->id); p = p->next; } printf("\n"); } int chang_linklist(struct linklist **head) //实现单链表的就地逆转 { struct linklist *p = (*head)->next; struct linklist *q = NULL; struct linklist *r = NULL; while (p != NULL) { q = p->next; p->next = r; r = p; p = q; } // free(*head); // *head = NULL; (*head)->next = r; }
相关文章推荐
- (C++版)链表(一)——实现单向链表创建、插入、删除等相关操作
- 双向链表的相关操作C++实现
- 链表相关练习题(C++)
- 链表的相关操作查找插入删除(c++ 数据结构)
- C++ list链表相关操作
- 我认为是最简单的c++实现线性表中链表相关过程
- 链表的有序合并相关_C++实现
- c++链表相关
- 双向链表的相关操作C++实现
- 双向链表的相关操作C++实现
- C++中设定线性表的大小(单链表描述)
- C++单链表中删除指定范围内的元素
- C++中将数组线性表转换为链表
- C++中将链表转换为数组描述的线性表
- c++容器相关
- 【C++】反转链表
- 链表的插入删除和查找_C++实现
- 基础算法题-链表相关
- 构造双向链表根据访问频度动态调整位置_C++实现
- 关于C++检测内存泄露相关知识(Windows程序调试)