链表------创建删除增加遍历
来源:互联网 发布:央视市场研究 知乎 编辑:程序博客网 时间:2024/05/22 06:12
LINKED LIST
创建链表
#include <stdio.h>#include<stdlib.h>#include<time.h>struct ListNode{ int data; ListNode *next;};void CreateListHead(ListNode **head, int n){ ListNode *p; ListNode *q; srand(time(0)); //初始化随机种子 *head = (ListNode *)malloc(sizeof(ListNode)); q = *head; for(int i = 0; i < n; i++){ p = (ListNode *)malloc(sizeof(ListNode)); p->data = rand()%100+1; q->next = p; q = p; } p->next = NULL;}
遍历整个表
void PrintfList(ListNode **head){ ListNode *p; p = *head; while(p = p->next){ printf("%d ",p->data); }}
删除整个表
bool ClearList(ListNode **head){ ListNode *p; ListNode *q; p = (*head)->next; while(p){ q = p->next; free(p); p = q; } (*head)->next = NULL; return 1;}
插入一个结点
void ListInsert(ListNode **head, int i, int a){ int j = 1; ListNode *p; ListNode *q; p = (*head); while(p && (j < i)){ j++; p = p->next; } q = (ListNode *)malloc(sizeof(ListNode)); q->data = a; q->next = p->next; p->next = q;}
删除一个结点
void ListDelete(ListNode **head, int i){ int j = 1; ListNode *p; ListNode *q; p = (*head); while(p && (j < i)){ j++; p = p->next; } q = p->next; p->next = q->next; free(q);}
int main(){ int n = 9; int i = 4; int a = 99; ListNode *listNode; CreateList(&listNode ,n); PrintfList(&listNode); ListInsert(&listNode, i, a); printf("\n"); PrintfList(&listNode); ListDelete(&listNode,i); printf("\n"); PrintfList(&listNode); //if(ClearList(&listNode)) // printf("\n OK! \n"); return 0;}
循环列表就是把单链表结尾指向空指针改为指向头结点。
双向链表在单链表的没个节点中,在设置一个指向其前驱结点的指针域
0 0
- 链表------创建删除增加遍历
- 编写一个linux内核模块,用以创建、增加、删除、和遍历一个双向链表
- PHP 创建、增加、删除、修改 xml
- 创建,增加,删除mysql表分区
- mysql 创建用户删除用户增加用户权限
- 创建,增加,删除mysql表分区
- C#创建、读写、增加、删除XML操作
- sql 创建表、删除表 增加字段 删除字段操作
- sql 创建表、删除表 增加字段 删除字段操作
- sql 创建表、删除表 增加字段 删除字段操作
- sql创建表、删除表、删除字段、增加字段
- sql 创建表、删除表 增加字段 删除字段操作
- sql 创建表、删除表 增加字段 删除字段操作
- [ZT]Treeview增加、删除、修改、遍历等操作
- c++ STL map的增加删除遍历操作
- 单链表----定义、增加节点、删除节点、遍历输出(java)
- JS实现数的遍历,查询,增加节点,删除节点
- 数据结构 图 创建 插入 遍历 删除 销毁
- Poj 3189 Steady Cow Assignment【二分+多重匹配】
- 模仿Flickr 使用GPUImage的实时相机滤镜(iOS源代码)
- 替换字符串中部分字符串,java
- 关于nmap和traceroute在虚拟机里使用的问题
- SpringMVC返回json数据时乱码解决
- 链表------创建删除增加遍历
- java学习例题之数据加密
- leetcode :Binary Search:H-Index IIe(275)
- 【任玉刚】给Android程序员的一些面试建议
- Hdu 4335 What is N? 欧拉函数降幂公式 + 循环节
- .h头文件,.lib库文件和.dll关系
- Java中string和stringBuffer的区别
- Touch事件的传递机制?
- 又一电源问题引发的灾难