数据结构实验

为了掌握数据结构这门课,我重修了这门课的实验,以求打好基本功。

实验一:链式存储结构

  1. 线性表的链表实验
    1. 随机生成10个100-999之间的三位整数放入链表。我用的是循环链表,跟单链表差别不大,只是最后一个元素最后指向的是头结点。
void Create(LinkNode *&L)                        //给定一个头结点,输出链表
{                                                //逆序头插法
	L = new LinkNode;
	L->data = 0;
	L->next = L;                            //头结点开始时指向自己
	LinkNode* s;
	int x = 100;
	int y = 999;
	srand((unsigned)3);
	for(int i=0; i < 10; i++)
	{
		s = new LinkNode;
		s->data = (rand() %( y-x+1 ))+ x ;//这一句,只需要简单修改x,y的值就能直接修改上下限
		s->next = L->next;
		L->next = s;

	 }
}

 

【10.27】完成单链表的创建,升序插入元素

#include"LinkList.h"

using namespace std;

void Insert(LinkNode *L,int num)
{
    LinkNode* p = L->next,*pre=L,*Tem;   //p指向第一个结点用来比较,pre指向p前面的点。Tem是新结点
    Tem = new LinkNode;
    Tem->data = num;    //要把值给Tem结点,不然出问题
    if(L->next == NULL)      //当L没有结点时,插入
    {
        Tem->next = NULL;
        L->next = Tem;
        return;
    }
    while (p && (p->data < num))  //寻找合适的位置插入
    {
        pre = p;
        p = p->next;
    }
    if(p == NULL)     //没有找到合适位置,一直来到了链表最后
    {
        pre->next = Tem;
        Tem->next = NULL;
    }
    else         //找到了合适位置
    {
        Tem->next = p;
        pre->next = Tem;
    }
    
}

void Display(LinkNode *L)
{
    LinkNode *o;
    o = L->next;
    while(o != NULL)
    {
        cout<<o->data<<" ";
        o = o->next;
    }
}
void Create(LinkNode *L)
{
    L = new LinkNode;
    L->data = 0;
    L->next = NULL;  //初始化L
    int num=0;
    cout<<"请输入要插入的元素,输入-1结束"<<endl;
    cin>>num;
    while(num != -1)
    {
        Insert(L,num);
        L->data = L->data +1;
        cin>>num;
    }
    cout<<"输入完成,列表元素如下:"<<endl;
    Display(L);
}

 
【学习记录】广州大学数据结构实验-LMLPHP【学习记录】广州大学数据结构实验-LMLPHP
#include"stdio.h"
#include<iostream>
#include<stdlib.h>

struct LinkNode
{
    LinkNode *next;
    int data;
 };

void Insert(LinkNode *L, int num);
void Display(LinkNode *L);
void Create(LinkNode *L);
View Code
 1 #include"LinkList.h"
 2
 3 using namespace std;
 4
 5
 6 int main()
 7  {
 8     LinkNode *L = NULL;
 9     Create(L);
10     return 0;
11  }
10-28 10:27