链表数据结构与基本运算
来源:互联网 发布:英语歌教学软件 编辑:程序博客网 时间:2024/06/15 13:50
定义
链式存储结构
特点
通过链指针来表示数据元素之间的逻辑关系,而非顺序存储结构
插入,删除方便。容易扩充表容量。
数据结构
typedef struct node{int data;struct node *next;}linklist;
基本运算
使用带头结点的单链表
// creat linklistlinklist *creat_linklist(void){linklist *head;linklist *p, *q;int x;head = (linklist *)malloc(sizeof(linklist));head->next = NULL;q = head;while(1){scanf("%d", &x);if(x == 0){break;}p = (linklist *)malloc(sizeof(linklist));p->data = x;p->next = NULL;q->next = p;q = q->next;}printf("create linklist ok!\n");return head;} //get linklist lengthint get_linklist_length(linklist *h){linklist *tmp = h;int len = 0;assert(NULL != h);while(h->next != NULL){len++;tmp = tmp->next;}return len;}//find elem xlinklist *find_elem_from_linklist(linklist *h, int x){linklist *tmp = NULL;assert(NULL != h);tmp = h->next;while(tmp != NULL && tmp->data != x){tmp = tmp->next;}return tmp;}//insert x at pos of linklistint insert_elem_in_linklist(linklist *h, int x, int pos){ linklist *tmp = NULL;assert(NULL != h);tmp = h->next;for(int i = 1; i < pos-1; i++){tmp = tmp->next;}p = (linklist *)malloc(sizeof(linklist));p->data = x;p->next = tmp->next;tmp->next = p;return RET_SUCCESS;}// delete elem xint delete_elem_linklist(linklist *h, int x){linklist *tmp = NULL;linklist *p = NULL;BOOL flag = FALSE;assert(NULL != h);p = h;while(p->next != NULL){tmp = p->next;if(tmp->data == x){flag = TRUE;p = p->next;free(tmp);}p = p->next;}return flag;}// reverse linklistint reverse_linklist(linklist *h){linklist *p,*q;p = h->next;h->next = NULL;while(p != NULL){q = pp = p->next;q->next = h->next;h->next = p;}}
单链表翻转示意图
- 链表数据结构与基本运算
- 数据结构与基本运算
- 第二章数据结构与基本运算
- 数据结构 - 2顺序表及链表基本运算实现
- 【数据结构之链栈的基本运算】
- 【数据结构之链队列的基本运算】
- 顺序表数据结构及基本运算
- 数据结构之顺序表的基本运算
- 数据结构-顺序存储-线性表-基本运算
- 栈数据结构及基本运算
- 【数据结构】单链表上的基本运算
- 数据结构-链式存储-基本运算
- c++基本数据结构和基本运算
- 数据结构—Problem E: 链表的基本运算(线性表)
- 数据结构实验2(二叉链表实现二叉树的基本运算)
- 数据结构之顺序表上的基本运算
- 数据结构实践——顺序表的基本运算
- 数据结构实践——顺序表的基本运算2
- 操作系统笔试题
- 使用构造代码块精炼程序
- MessageFormat用法
- CSDN
- 为什么我做出了这道题,却一点都不高兴
- 链表数据结构与基本运算
- string char* const char* 转化
- hibernate中对联合主键数据保存的一种处理方式
- 腾讯面试总结
- 初步了解OBD
- LDA并行化实验(待完善)
- IOCP 浅析
- Mac下构建cocos-2dx for android
- tomcat开机启动