线性链表的定义与元素插入、删除的操作实现
2013-07-28 15:56
197 查看
优点:线性链表可以迅速实现元素的插入与删除,优化分配了表元素的存储空间
缺点:表元素占用内存空间不连续,对表元素排序最好用顺序表实现
#define NULL 0 #include<stdio.h> #include<stdlib.h> typedef struct Node{ ////////定义结构体/////////////////////////// int e; struct Node *next; }Node,*DLB; void Xinjian(DLB &L){ /////////建立一个 空链表/////////////////// L=(DLB)malloc(sizeof(Node)); L->next=NULL; }//Xjian void Cunbiao(DLB &L,int n){ //存储长度为n的线性表 Node *p,*q; int i; q=L; for(i=1;i<=n;i++) { p=(DLB)malloc(sizeof(Node)); scanf("%d",&p->e); //p->next=L->next; p->next=q->next; q->next=p; q=q->next; //L->next=p; } }//Cunbiao void Print(DLB L){ //打印输出 int i; while(L->next) { printf("%d ",L->next->e); L=L->next; } puts(""); } void Incert(DLB &L,int t,int e){ //在位序为t的元素前插入一个新的元素e //注意这里默认插入位置是合法的,程序的健壮性由读者自己开发哦 int i; Node *p,*q; p=L; q=(DLB)malloc(sizeof(Node)); q->e=e; for(i=1;i<t;i++) { p=p->next; } q->next=p->next; p->next=q; }//Incert void Delet(DLB &L,int t,int &e){ //删除位序为t的线性表元素并用e返回被删元素的值 int i; Node *p,*q; p=L; q=L; for(i=1;i<=t;i++) { if(i<t)p=p->next; q=q->next; } e=q->e; p->next=q->next; free(q); } int main() { DLB L; int n,e1,e2,E,e; Xinjian(L); printf("请输入单链表长度:\n"); scanf("%d",&n); Cunbiao(L,n); Print(L); printf("请输入插入元素位置与插入元素的值:\n"); scanf("%d %d",&e1,&E); Incert(L,e1,E); Print(L); printf("请输入删除元素位置:\n"); scanf("%d",&e2); Delet(L,e2,e); printf("被删除元素的值为%d\n",e); Print(L); system("pause"); return 0; }
相关文章推荐
- (1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指
- 编程菜鸟的日记-初学尝试编程-顺序表的类定义及其基本操作算法(创建表、元素插入、元素删除、顺序查找、测表空、求表长、输出等)
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- C++实现最小堆及插入,调整顺序,删除堆顶元素的操作
- C++实现最小堆及插入,调整顺序,删除堆顶元素的操作
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 数据结构的一些基本操作(在表L中插入第i个元素e. 操作成功返回OK,失败时返回ERROR,删除表L中第i个元素,结果用e返回. 操作成功返回OK,失败时返回ERROR)
- (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作
- 链式存储结构类的实现 (实现函数)(包括插入,删除等操作的实现)
- c++ 实现结构体单链表的 创建 插入 删除等操作
- 如何使用c语言实现双向链表的插入删除操作
- 线性表的顺序表示和实现基本操作之插入元素
- 26个字母单链表,实现插入,删除,查找操作
- 【数据结构】堆结构小根堆,大根堆,插入,删除等操作的实现
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- Mysql创建触发器实现不同表的插入、更新、删除操作
- C#如何实现在PPT文档中插入、编辑和删除表格的操作
- 链表C++实现插入、删除元素,链表逆序
- 二叉搜索树的根插入、选择、删除、合并、排序等操作的实现
- 设计一个整型链表类list,能够实现链表节点的插入、删除、以及链表数据的输出操作。