数据结构上机: 实验1-线性表基本操作和简单程序

 

实验一  线性表基本操作和简单程序

 

1 实验目的

一、实验目的与基本要求

  1. 掌握数据结构中的一些基本概念。数据、数据项、数据元素、数据类型和数据结构,以及它们之间的关系。
  2. 了解数据的逻辑结构和数据的存储结构之间的区别与联系;数据的运算与数据的逻辑结构的关系。
  3. 掌握顺序表和链表的基本操作:插入、删除、查找以及表的合并等运算。
  4. 掌握codeblock上机调试程序的基本方法及C语言编程。

 

二.实验内容

  1. 认真阅读和掌握和本实验相关的教材内容及所给的两个程序代码。
  2. 建立顺序表,基本操作包括:初始化,建立一个顺序存储的链表,输出顺序表,判断是否为空,取表中第i个元素,定位函数(返回第一个与x相等的元素位置),插入,删除。
  3. 建立单链表,基本操作包括:初始化,建立一个链式存储的链表,输出顺序表,判断是否为空,取表中第i个元素,定位函数(返回第一个与x相等的元素位置),插入,删除。
  4. 用顺序表和链表分别设计输入一组数据(4,6,9,0,2,-25,14,3,-29),测试程序的如下功能:根据输入的数据,找到相应的存储单元并删除,并显示表中所有的数据,例如输入数据3,如果存在所在的数据中,删除,输出删除后的这组数据,否则,直接输出。

 

#include 
using namespace std;
struct node {
    int data;
    node *next;
};

node *LinkedListInit() {
    node *L;
    L = new node;
    if(L == NULL) {
        printf("申请内存空间失败\n");
    }
    L->next = NULL;
 	return L;
}

node *LinkedListCreatH() {
    node *L;
    L = new node;
    L->next = NULL;
    int x;
    while(scanf("%d",&x) != EOF) {
        node *p;
        p=new node;
        p->data = x;
        p->next = L->next;
        L->next = p;
    }
    return L;
}

node *LinkedListInsert(node *L,int i,int x) {
    node *pre;
    pre = L;
    int tempi = 0;
    for (tempi = 1; tempi < i; tempi++) {
    	pre = pre->next;
	}
    node *p;
    p = new node;
    p->data = x;
    p->next = pre->next;
    pre->next = p;

    return L;
}

node *LinkedListDelete(node *L,int x)
{
    node *p,*pre;
    p = L->next;
    while(p->data != x) {
        pre = p;
        p = p->next;
    }
    if(x==L->next->data){
        L->next=L->next->next;
    }
    else{
        pre->next = p->next;
    }
    return L;
}

int main() {
    node *list,*start;
 	printf("请输入单链表的数据:");
    list = LinkedListCreatH();
    for(start = list->next; start != NULL; start = start->next) {
    	printf("%d ",start->data);
	}
    printf("\n");
    int i;
    int x;
    printf("\n");
    printf("请输入要删除的元素的值:");
    scanf("%d",&x);
    LinkedListDelete(list,x);
    for(start = list->next; start != NULL; start = start->next) {
    	printf("%d ",start->data);
	}
    printf("\n");

    return 0;
}

 

你可能感兴趣的:(数据结构上机: 实验1-线性表基本操作和简单程序)