zoukankan      html  css  js  c++  java
  • 链表的操作(未完待续)

    #include<iostream>
    using namespace std;
    
    typedef struct LNode {
    	int data;
    	struct LNode *next;
    }LNode , *LinkList;
    
    LNode *p,*q;
    LinkList H;
    
    //求链表的长度
    int ListLength(LinkList L)
    {
    	 p = L;
    	 int k = 0;
    	 while(p){
    	 	k++;
    	 	p = p->next;
    	 }           
    	 return k;                                                            
    } 
    // 查找元素操作
    LNode *Locate(LinkList L,int e) //e's type is int 
    {
    	//在L所指链表中查找第一个值和e相等的元素,若存在,则返回
    	//它在链表中的位置,即指向该数据的元素所在节点的指针,否则返回NULL 
    	p = L;            //用指针的方法代替下标,需要用一个节点类型的指针替换一下,以便操作 
    	while(p && p->data != e) p = p->next;
    	return p;
    } 
    //插入节点操作(前插)
    void Insert (LinkList &L,LNode *p,LNode *s)
    {
    	//指针p指向L为头节点的链表中某个节点,将s节点插入到p节点之前
    	if (p == L){
    		s->next = L;
    		L = s;
    	} else {
    		q = L;
    		while( q->next !=p ) q = q->next;//迭代查找 
    		q->next = s;
    		s->next = p;
    	}
    } 
    
    //删除节点的操作
    void Delete(LinkList &L,LNode *p,int e)
    {
    	//p 指向链表中的某一个节点,从链表中删除该节点并由e返回该节点的值 
    	if( p == L)  //L 就代表头节点
    	{
    		L = p->next;
    	}else{
    		q = L;
    		while(q->next != p)q = q->next;   //p,q 都是地址,且p-〉next也是地址 
    		q->next = p->next;
    	}
    	e = p->data;
    	delete p; 
    } 
    

  • 相关阅读:
    ICPC 2017 Japan Domestic --Making Lunch Boxes(位运算枚举)
    ssr安装
    大作业信息汇总
    知识点1-3:MVC设计模式
    演练2-2:Guestbook示例应用程序
    知识点2-2:认识默认项目模板
    演练2-1:创建MVC默认项目
    知识点2-1:设置开发环境
    知识点1-4:ASP.NET MVC的好处
    知识点1-1:什么是ASP.NET MVC
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4248792.html
Copyright © 2011-2022 走看看