单链表
来源:互联网 发布:淘宝存在隐形降权吗 编辑:程序博客网 时间:2024/06/03 12:54
#include<iostream>#include<cstdio>#include<stdlib.h>#include<malloc.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int ElemType;typedef int Status;typedef struct LNode{ ElemType data; struct LNode* next;}LNode,*LinkList;//L为带头节点的单链表的头指针 Status GetElem_L(LinkList L,int i,ElemType &e){ LinkList p=L->next; int j=1; while(p&&j<i){ p=p->next; ++j; } if(!p)return ERROR; e=p->data; return OK;}//采用头插法 Status ListInsert_L(LinkList L,int i,ElemType e){ LinkList p=L; int j=0; while(p&&j<i-1){ p=p->next; j++; } if(!p||j>i-1)return ERROR; LinkList s=(LinkList)malloc(sizeof(LNode)); s->data=e; s->next=p->next; p->next=s; return OK;}Status ListDelete_L(LinkList &L,int i,ElemType&e){ LinkList p=L; int j=0; while(p->next&&j<i-1){ p=p->next; j++; } if(!(p->next)||j>i-1)return ERROR; LinkList q=p->next; p->next=q->next; e=q->data; free(q); return OK;}void createLinkList(LinkList&L,int n){ L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; for(int i=0;i<n;i++){ LinkList p=(LinkList)malloc(sizeof(LNode)); scanf("%d",&p->data); p->next=L->next; L->next=p; }}void mergeList(LinkList LA,LinkList LB,LinkList&LC){ LinkList pa=LA->next,pb=LB->next,pc; pc=LC=LA; while(pa&&pb){ if(pa->data<=pb->data){ pc->next=pa; pc=pa; pa=pa->next; }else{ pc->next=pb; pc=pb; pb=pb->next; } } pc->next=pa?pa:pb;} //遍历 void Reverse(LinkList linkList){ LinkList p=linkList->next; while(p){ printf("%d ",p->data); p=p->next; }}int main(){ LinkList list; createLinkList(list,10); Reverse(list); return 0;}
阅读全文
0 0
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- 单链表
- Java高级之异常
- form表单验证input标签内容
- CodeForces
- 环信JAVA服务端调用各接口完整实例
- Material Design之ToolBar
- 单链表
- java模拟http请求调用远程接口工具类
- 常见管理法则
- POJ 3140 Contestants Division 笔记
- Android Studio学习使用-1
- JZOJ__Day 10:【普及模拟】【USACO】山峰暸望
- 希尔排序
- Build Microsoft Azure SDK For OpenWrt System
- 分类-朴素贝叶斯