数据结构之线性表的链式存储
2012-06-16 09:24
459 查看
单链表的初始化、插入、删除和遍历
#include <stdlib.h> #include <stdio.h> typedef struct LNode{ int data; //链表数据 struct LNode* next; //链表指针 }LNode,*LinkList; /*头插法-建立单链表*/ LinkList HeadCreate(LinkList la) { int num=0; int num1=0; la=(LinkList)malloc(sizeof(LNode)); //建立头结点 la->next=NULL; printf("请输入10个数字进行链表的初始化工作:\n"); //scanf("%d",&num); while(num<10) { LNode *p=(LinkList)malloc(sizeof(LNode)); scanf("%d",&num1); p->data=num1; p->next=la->next; la->next=p; num++; } return la; } /*单链表插入操作*/ bool InsertList(LinkList la,int i,int e) { //在la链表中的i位置插入数值e int j=1; LinkList p=la,s; while(p && j<i) { p=p->next; j++; } if(p==NULL) return false; if((s=(LinkList)malloc(sizeof(LNode)))==NULL) return false; s->data=e; s->next=p->next; p->next=s; return true; } /*单链表删除操作*/ bool DeleteList(LinkList la,int i) { int j=1; LinkList p=la,q; while(p && j<i) //p指向第i-1个元素 { p=p->next; j++; } if(p==NULL || p->next==NULL) //表示不存在第i-1个和第i的元素 return false; q=p->next; p->next=q->next; free(q); return true; } //表的遍历 void TravelList(LinkList la) { LinkList p=la->next; while(p!=NULL) { printf(" %d->",p->data); p=p->next; } printf("\n"); } int main() { int a=0;//需要被插入的元素 int po=0;//插入元素的位置 LNode la; LinkList p; p=HeadCreate(&la); //头插法创建长度为10的单链表 TravelList(p); printf("请输入要插入的整数元素:\n"); scanf("%d",&a); printf("请输入元素的位置:\n"); scanf("%d",&po); InsertList(p,po,a); //在链表的第2个位置插入元素10 TravelList(p); printf("请输入要删除的元素的位置:"); scanf("%d",&po); DeleteList(p,po); TravelList(p); return 0; } //运行环境vc6.0等一般C语言的编译器都可以
此处只是实现的单链表对于其他类型的链表基本上都是在此基础上进行的一些升级和改造,大家能理解单链表基本上就差不多了。
相关文章推荐
- 数据结构之线性表——链表的链式存储(链式描述)
- 数据结构——线性表的伪链表存储(顺序存储链式遍历)
- C语言 数据结构 线性表 单链表 线性表的链式存储结构之一
- 数据结构之线性表——队列的链式存储
- 数据结构之线性表――链式存储结构之单链表(php代码实现)
- [SDUT](2117)数据结构实验之链表二:逆序建立链表 ---链式存储(线性表)
- 数据结构(八)线性表链式存储结构
- JAVA数据结构之线性表的链式存储结构——双向链表
- 数据结构中链式存储的注意点(线性与栈)
- c/c++常用算法(2) -- 数据结构(线性表的链式存储)
- 数据结构之线性表——栈的链式存储
- JAVA数据结构之线性表的链式存储结构——单链表
- 数据结构之线性表-链式存储之单链表(一)
- 数据结构之线性表代码实现顺序存储,链式存储,静态链表(选自大话数据结构)
- 数据结构之线性表——队列的链式存储
- 数据结构2----线性表顺序存储和链式存储的实现(霜之小刀)
- 数据结构(4)之线性表之单链式存储
- 数据结构之线性表链式存储
- JAVA数据结构之线性表的链式存储结构——循环链表
- 数据结构之线性表——链表的链式存储(链式描述)注释版