4.单链表查找接点并删除

原创 2012年03月24日 00:07:39
#include <cstdlib>
#include <iostream>

using namespace std;

//定义单链表的接点
typedef struct Node{
        int data;
        struct Node * next;
        }Nodes; 
        
        //创建链表  头插法
void createListHead(Node * &node ,int data[],int length){
       Node * q;//指向新创建的接点
       
       //创建头结点
     node=(Node *)malloc(sizeof(Node));
     node->next=NULL;
     
      int i;
     for(i=length;i>=1;i--){
             q=(Node *)malloc(sizeof(Node));
             q->data=data[i];
             q->next=node->next;
             node->next=q;
           }     
     } 
 
//遍历单链表
void showList(Node * node){
     Node * p;//指向当前遍历的接点
     if(node!=NULL)
     p=node->next;
     while(p!=NULL){
             printf("%d-->",p->data);
             p=p->next;
             } 
     } 
//查找接点并删除 成功返回1  失败返回0
int deleteNode(Node * &node ,int x){
    Node * p, *q;
  
    p=node;
    while(p->next!=NULL){//查找位置 
            if(p->next->data==x) break;
            p=p->next;
            } 
    //删除 
    if(p->next==NULL){
         return 0;//没有查找到 
         } 
     else{
          q=p->next;
          p->next=p->next->next;
          free(q);
          return 1;
          }    
    } 

int main(int argc, char *argv[])
{
    Node * node=NULL;
      int data[11];
    int i;
    for(i=1;i<=10;i++){
                  data[i]=i*i  ;         
                      }
    createListHead(node ,data,10);
    showList(node);
     deleteNode(node ,64);
     
     printf("\n");
    showList(node);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

实现链表的初始化,按值查找,插入,删除

#include #include #include #define OK   1 #define ERROR  0 #define TRUE 1 #define FALSE 0 ...
  • sha_520
  • sha_520
  • 2012年03月13日 21:44
  • 872

数据结构学习(三)——单链表的操作之查找、删除、插入。

创建链表的方法采用尾插法,且是改进版的尾插法,即添加了一个辅助头节点。 下面的代码是对插入、删除、查找的一个整体操作。其中查找分为按值和按位置查找。删除和插入都是按给定位置操作。 #include...
  • abclixu123
  • abclixu123
  • 2012年11月22日 22:56
  • 6625

单链表的初始化,建立,插入,查找,删除。

#include #include   typedef int ElemType;   //定义结点类型  typedef struct Node {     ElemType d...
  • sinat_24436879
  • sinat_24436879
  • 2015年04月11日 12:22
  • 2637

数据结构单链表实现插入删除查找

///////////list3.c实现链表的插入删除查找#include#include#includetypedef struct LNode //////////定义数据结构体{ ...
  • ubuntu_yanglei
  • ubuntu_yanglei
  • 2010年01月28日 19:28
  • 1833

删除单链表的最大值

int fine_max() { int max=head.next->data; node* p=head.next->next; while(p) { ...
  • qq_39993896
  • qq_39993896
  • 2017年12月02日 12:33
  • 139

数据结构研究 ----单链表的按序号查找

采用一个计数器j=0;然后根据分配的序号i,在满足j 代码: ListNode* GetNode(LinkList head,int i){ //在带头结点的单链表head中查找第i个结点,若...
  • howlaa
  • howlaa
  • 2014年02月13日 09:26
  • 1751

单链表的功能使用:初始化,赋值,输出,删除,按值查找,按地址查找,数据修改

#include #include typedef struct Node* A; struct Node { A next; int value; }; int init(A *h...
  • qq_36955347
  • qq_36955347
  • 2017年05月20日 22:12
  • 225

数据结构:头插法、尾插法创建单链表,求链表长度、查找、插入、删除、合并

头插法、尾插法创建单链表,求链表长度、查找、插入、删除、合并。
  • qq_37287697
  • qq_37287697
  • 2017年03月21日 18:09
  • 511

单链表操作之查找中间结点

***单链表操作之查找中间结点*** //查找链表的中间结点; //自定义的结点结构体和头指针结构体: #include #include #in...
  • bitboss
  • bitboss
  • 2016年06月08日 22:50
  • 1725

Linux 查找文件并删除掉

命令:sudo find -name *objname* |xargs rm-rf 注意:一般要在root权限下进行 完整步骤: $ su root $cd ../ $ sudo fin...
  • renlonggg
  • renlonggg
  • 2017年04月13日 13:45
  • 347
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:4.单链表查找接点并删除
举报原因:
原因补充:

(最多只允许输入30个字)