单链表实现删除最小节点的算法
2011-04-10 11:29
495 查看
#include <iostream.h> #include <stdlib.h> #define LIST_INIT_SIZE 100 #define OK 1 #define OVERFLOW -2 #define ERROR 0 typedef int Status; typedef int ElemType; typedef struct LNode{ ElemType data; struct LNode *next; } LNode,*LinkList; Status InitList_L(LinkList &L) { L=new LNode; if(!L) exit(OVERFLOW); L->next=NULL; return OK; } void ListCreat_L(LinkList &L,int n) { ElemType x; LNode *p,*q; q=L; cout<<"input x(n)="<<endl; for(int i=n;i>0;i--) { p=new LNode; if(!p) exit(OVERFLOW); cin>>x; p->data=x; p->next=NULL; q->next=p; q=q->next; } } Status ListDelete_L(LinkList &L,int i,ElemType &e) { LNode *p,*q; int j; p=L; j=0; while(p->next&&j<i-1){ p=p->next;++j;} if(!p->next|| j>i-1) return ERROR; q=p->next;p->next=q->next; e=q->data; delete q; return OK; } void FindMin(LinkList &L) { ElemType result; int i=1; int minnum=1;//这里设置了一个记录最小位置的变量,这是关键 LNode *p; p=L->next->next; ElemType min; if(!p) exit(ERROR); min=L->next->data; while (p) { i++; if(p->data<=min) { min=p->data; minnum=i; } p=p->next; } ListDelete_L(L,minnum,result); cout<<"你删除的元素为"<<result<<endl; } void vist_L(LinkList L) { LNode *p=L->next; while(p) { cout<<p->data<<""; p=p->next; } cout<<endl; } void main() { LinkList L; InitList_L(L); ListCreat_L(L,5); FindMin(L); vist_L(L); }
相关文章推荐
- 单链表实现删除最小节点的算法
- 左程云_算法与数据结构 — 链表问题 — 02在单链表和双链表中删除倒数第K个节点
- 【LeetCode-面试算法经典-Java实现】【019-Remove Nth Node From End of List(移除单链表的倒数第N个节点)】
- 实现一个算法,删除单链表中间的某个结点,假定你只能访问该结点
- 面试题2 编程实现单链表删除节点
- 删除单链表中的倒数第n个节点的实现及测试程序
- 编程实现一个单链表节点的删除
- 单链表 算法(删除中间节点)
- 二叉排序树节点的删除(C++,算法导论),前中后序遍历(递归/非递归,栈实现),按层次遍历(队列实现)
- 数据结构:设有一个不带头结点的单链表L,设计两个递归算法,del(L,x)删除单链表L中第一个值为x的节点,delall(L,x)删除单链表L中的最小节点值。
- 算法实现:返回单链表的倒数第pos个节点
- 009实现一个算法来删除单链表中的一个结点,只给出指向那个结点的指针(keep it up)
- 算法与数据结构基础11:C++实现——二拆搜索树节点删除
- 2.4删除单链表L中一个最小值结点的高校算法(假设最小值结点是唯一的)
- 二.从零写单链表的算法之遍历节点&删除节点&逆序节点
- 【LeetCode-面试算法经典-Java实现】【203-Remove Linked List Elements(删除单链表中的元素)】
- 【Java】实现一个算法,删除单链表中间的某个结点,假定你只能访问该结点
- cc150:实现一个算法来删除单链表中间的一个结点,仅仅给出指向那个结点的指针
- (算法)输出单链表的倒数第k个节点,删除特点的节点和从链表尾一次输出节点值
- 编程实现单链表的删除节点