zoukankan      html  css  js  c++  java
  • 双向链表

    #include <iostream>
    #include <stdio.h> 
    #include <stdlib.h>
    typedef float ElemType;
    typedef int Status;
    typedef struct SXLNode{
    	ElemType data;
    	struct SXLNode *prior,*next;
    }SXLNode,*SXLinkList;
    //函数的声明
    Status Creat_SX(SXLinkList &head);//双向链表的建立 
    void Print_SX(SXLinkList head);//显示链表元素 
    Status Insert_SX(SXLinkList &head,Status n,ElemType e);//双向链表的插入 
    Status Delete_SX(SXLinkList &head,Status n);//双向链表的删除 
    
    
    
    
    
    
    Status Creat_SX(SXLinkList &head)//双向链表的建立 
    {
    	SXLinkList q,p;
    	Status i=0,j;
    	head=(SXLinkList)malloc(sizeof(SXLNode));
    	head->next=NULL;
    	head->prior=NULL;
    	p=head;
    	
    	scanf("%d",&j);
    	
    	for(i=0;i<j;i++)
    	{
    		q=(SXLinkList)malloc(sizeof(SXLNode));
    		scanf("%f",&q->data);
    		q->next=NULL;
    		p->next=q;
    		q->prior=p;
    		p=q;
    		
    	}
    	
    	return 0;	
    }
    void Print_SX(SXLinkList head)//显示链表元素 
    {
    	SXLinkList q;
    	q=head->next;
    	
    	while(q!=NULL)
    	{
    		printf("%4.2f ",q->data);
    		q=q->next;
    	} 
    }
    Status Insert_SX(SXLinkList &head,Status n,ElemType e)//双向链表的插入 
    {
    	SXLinkList p,q;
    	Status i=1;
    	p=head;
    	
    	while(p!=NULL&&i<n)
    	{
    		i++;
    		p=p->next;
    	} 
    	q=(SXLinkList)malloc(sizeof(SXLNode));
    	q->data=e;
    	p->next->prior=q;
    	q->next=p->next;
    	p->next=q;
    	q->prior=p;
    	return 0;
    }
    Status Delete_SX(SXLinkList &head,Status n)//双向链表的删除 
    {
    	SXLinkList p,q;
    	Status i=1;
    	p=head;
    	
    	while(p->next!=NULL&&i<n-1)
    	{
    		i++;
    		p=p->next;
    	}
    	q=p->next;
    	q->next->prior=p;
    	p->next=q->next;
    	free(q);
    } 
    
    
     
    int main(int argc, char** argv) 
    {
    	SXLinkList head;
    	ElemType e;
    	
    	//测试不规范请自己去测试发现错误请告知我 
    	Creat_SX(head);//创建链表 
    	Print_SX(head);//显示链表元素 
    	printf("
    ");
    	printf("----------------------------
    ");
    	Insert_SX(head,1,0.3);
    	Print_SX(head);//显示链表元素 
    	printf("
    ");
    	printf("----------------------------
    ");
    	Delete_SX(head,1);
    	Print_SX(head);//显示链表元素 
    	return 0;
    }
    别废话,拿你代码给我看。
  • 相关阅读:
    WPF Caliburn 学习笔记(五)HelloCaliburn
    MSDN 教程短片 WPF 20(绑定3ObjectDataProvider)
    MSDN 教程短片 WPF 23(3D动画)
    比赛总结一
    HDU3686 Traffic Real Time Query System
    HDU3954 Level up
    EOJ382 Match Maker
    UESTC1565 Smart Typist
    HDU3578 Greedy Tino
    ZOJ1975 The Sierpinski Fractal
  • 原文地址:https://www.cnblogs.com/lvxueyang/p/13707583.html
Copyright © 2011-2022 走看看