实验二 单向链表的基本操作
一. 实验目的
(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;