单项链表--尾插法
2013-09-13 00:32
155 查看
今天学了尾插法单项链表,写了一下代码,还不够成熟,需要改进,下面是代码,这个模版不是很好,个人感觉,虽然是书上的,但感觉实际意义不大,不过还是熟悉一下课本吧:
下面是我写的代码,尾插法建立单链表“:
下面是我写的代码,尾插法建立单链表“:
//为节点单链表的相关操作 //初始化 #include <stdio.h> #include <stdlib.h> using namespace std; typedef int type_int; typedef struct Node { type_int x; struct Node *next; }node,*node_point; //初始化 void Init(node_point &head,node_point &rear){ head=(node_point)malloc(sizeof(node)); rear=head; head->next=NULL; } //构造链表 void Construct(node_point &rear){ type_int c; while(scanf("%d",&c),c){ node_point p=(node_point)malloc(sizeof(node)); p->x=c; rear->next=p; rear=p; } rear=NULL; } //查找index node_point Search_node(node_point &head,type_int i){ if(i<=0){ printf("wrong search"); return NULL; } int j=1; node_point temp=head->next; while(temp!=NULL && j<i){ j++; temp=temp->next; } if(temp!=NULL) return temp; else return NULL; } //查找key node_point Search_node_two(node_point &head,type_int key){ for(node_point temp=head->next;temp;temp=temp->next) if(temp->x==key) return temp; return NULL; } //插入 void Insert_node(node_point &head,int i,type_int c){ if(i==1){ node_point p=(node_point)malloc(sizeof(node)); p->x=c; p->next=head->next; head->next=p; printf("succeed\n"); return; } node_point p=Search_node(head,i-1); if(p==NULL || p->next==NULL){ printf("failure\n"); return ; } node_point q=(node_point)malloc(sizeof(node)); q->x=c; q->next=p->next; p->next=q; printf("succeed\n"); } //判空 bool Is_empty(node_point &head){ return head->next==NULL; } //删除 void Delete_node(node_point &head,node_point &rear,int i){ if(Is_empty(head)){ printf("the node is empty\n"); return ; } if(i==1){ node_point p=head->next; head->next=p->next; free(p); if(head->next==NULL) rear=head; printf("succeed\n"); } node_point p=Search_node(head,i-1); if(p==NULL || p->next==NULL){ printf("failure\n"); return ; } node_point q=p->next; p->next=q->next; free(q); printf("succeed\n"); } int main() { return 0; }
相关文章推荐
- 单项链表的定位,插入,删除
- Usaco 1.1.4 破碎的项链(Broken Necklace)
- 带头结点的尾插法建立双链表
- NOI 项链工厂
- 单链表的建立 (头插法 and 尾插法)
- 分别用尾插法和头插法建立链表
- HH的项链
- BZOJ 1878 HH的项链(树状数组)
- 尾插法插入链表节点
- SJTU OJ 1073 能量项链
- [UVA 10294] polya定理 可循环翻转项链手镯问题
- NYOJ题目460 项链(矩阵相乘最大步数)
- BZOJ 1878 SDOI2009 HH的项链 树状数组/莫队算法
- bzoj1830: [AHOI2008]Y型项链 贪心+乱搞
- NYOJ 280 LK的项链 &&POJ 2409 Let it Bead(polya 定理)
- [BZOJ1878]SDOI2009HH的项链|树状数组
- 双链表创建(尾插法)
- BZOJ 1878 【SDOI2009】HH的项链(离线+树状数组)
- CodeVS3785 项链
- 离线查询区间颜色种数 bzoj1878 HH的项链 bzoj1293