实验二 单向链表的操作

更新时间:2023-06-15 15:07:02 阅读: 评论:0

实验二  单向链表的基本操作
一. 实验目的
(1) 掌握线性表链式存储的方法及其基本操作
(2) 掌握将算法在VC++语言环境下实现的过程
二. 实验准备
(1) 复习线性表的定义,掌握链式存储的方法及操作
(2) 复习C语言中指针及结构体的概念。定义方式
(3) VC++的编程环境
meadow
三. 实验内容28,20,12,9,7,5,4,3,1
在你自己的文件下,建立一个C语言程序LL.C,完成下列要求:
(1) 定义一个单链表LLIST,按数据1,3,4,5,7,9,12,20,28的次序建立各结点,形成单链表LLIST,然后按链表顺序输出九个结点的存储单元地址和相应的数值;
(2) 建立一个插入函数,将数据15作为结点按照从小到大的次序自动插入到链表的相应位置上,完成插入结点的操作,形成新的链表LLISThbs,然后输出链表结点的存储单元地址和相应的数值;bedroom
(3) 建立一个删除函数,将链表中第七个结点删除,形成新的链表LLIST,然后输出链表结点的存储单元地址和相应的数值;
程序清单如下:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define NULL 0
typedef struct node {
int data;
sttuct node *next;
} llist;
main()
{
llist *h, *crtll(),*insll(), *dltll();
outll();
h=NULL;
h=crtll(h);
吝啬鬼什么意思
outll(h);
h=insll(h);
outll(h);
h=dltll(h);
outll(h);
}
llist *crtll( llist *h)
{
}
void outll(llist *h)
{
  llist *y, *p;
  int i=1;
  y=h;
  while (y!=NULL)
  {
    printf(“N=%d  AD=%x  DATA=%d  AD->=%x\n”, i, y, y->data, y->next);
y=y->next; i++;
}
}
llist *insll(llist *h)
{
}
llist *dltll(llist *h)
{
}
#include "stdafx.h"
#include<stdio.h>
#include"stdlib.h"
typedef struct Lnode
{
    int data;
    struct Lnode *next;
}Lnode,*Link;
void create_list(Link &L)
{
    Link p,current;江沪日语
    int a[ ]={28,20,12,9,7,5,4,3,1},j=8;
    L=(Link)malloc(sizeof(Lnode));
    L->next=NULL;
    current=L;
  while(j>=0)
    {
        p=(Link)malloc(sizeof(Lnode));
        p->data=a[j];
        current->next=p;
        current = p;
        j--;
  }
p->next=NULL;
}
void printf_list(Link head)
{
  Link p;
  p=head->next;
    while(p!=NULL)
{
    printf("%d=",p);
    printf("%d\n",p->data);
    p=p->next;
}
}
void inrt(Link &L)
{
    int a=0;
    int n;
    Link current,p,q;
    q=(Link)malloc(sizeof(Lnode));
    printf("输入一个插入的数\n");
    scanf("%d",&n);
    q->data=n;
    p=L;gossip girl 下载
    current=L->next;
    while((current!=NULL)&&a==0)
    {
        if(q->data<current->data)a=1;
        el
        {
            p=p->next;
            current=current->next;
        }
befullof    }
        p->next=q;
        q->next=current;
}
void Delete(Link &L)
{
    int n;
    printf("输入一个删除的数\n");
    scanf("%d",&n);
    Link current,p;
    p=L;
    current=L->next;
    while(n!=current->data)
    {
        p=p->next;
        current=current->next;
    }
    p->next=current->next;
    free(current);
}
口才班void main()
{
 
2014成人高考  Link head;
  create_list(head);
  printf_list(head);
  inrt(head);
  printf_list(head);
  Delete(head);
  printf_list(head);
}
#include "stdafx.h"
#include<stdio.h>
#include"stdlib.h"
typedef struct Lnode
{
    int data;
    struct Lnode *next;
}Lnode,*Link;
void create_list(Link &L)
{
unfortunately    Link p,current;
    int a[ ]={28,20,12,9,7,5,4,3,1},j=8;
    L=(Link)malloc(sizeof(Lnode));
    L->next=NULL;
    current=L;
  while(j>=0)
    {
        p=(Link)malloc(sizeof(Lnode));
        p->data=a[j];
        current->next=p;

本文发布于:2023-06-15 15:07:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/146030.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:结点   链表   实验   语言
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图