資料結構 線性表

2021-05-27 08:51:04 字數 2567 閱讀 6888

參考:

一、線性表:順序表、單鏈表、迴圈鍊錶、雙鏈表

順序表:

1.表的初始化

void initlist(seqlist *l)

2.求表長

int listlength(seqlist *l)

3.取表中第i個結點

datatype getnode(l,i)

4.查詢值為x的結點

5. 插入

具體演算法描述

void insertlist(seqlist *l,datatype x,int i)

6.刪除

具體演算法描述

void deletelist(seqlist *l,int i)

單鏈表#include

#include

#include

#include

using namespace std;

typedef struct student

intdata;

structstudent *next;

}node;

node *creat()

node*head,*p,*s;

intx,cycle = 1;

head= (node*)malloc(sizeof(node));

p= head;

while(cycle)

printf("\npleaseinput the data:");

scanf("%d",&x);

if(x!=0)

s= (node*)malloc(sizeof(node));

s->data= x;

printf("\n   %d",s->data);

p->next= s;

p= s;

elsecycle = 0;

head= head->next;

p->next= null;

printf("\n  yyy %d",head->data);

return(head);

int length(node *head)

intn=0;

node*p;

p= head;

while(p!=null)

p=p->next;

n++;

return(n);

void print(node *head)

node*p;int n;

n= length(head);

printf("\nnow,these%d records are:\n",n);

p= head;

if(head!=null)

while(p!=null)

printf("\nuuu  %d  ",p->data);

p= p->next;

node *del(node *head,int num)

node*p1,*p2;

p1=head;

while(num!=p1->data&&p1->next!=null)

p2=p1;p1=p1->next;

if(num==p1->data)

if(p1==head)

head= p1->next;

free(p1);

else

p2->next= p1->next;

else

printf("\n%could not been found",num);

return(head);

node *insert(node *head,int num)

node*p0,*p1,*p2;

p1= head;

p0= (node *)malloc(sizeof(node));

p0->data= num;

while(p0->data>p1->data&&p1->next!=null)

p2= p1;

p1= p1->next;

if(p0->data<=p1->data)

if(head== p1)

p0->next= p1;

head= p0;

else

p2->next= p0;

p0->next= p1;

else

p1->next= p0;

p0->next= null;

return(head);

int main()

node*head,stud;

intn,del_num,insert_num;

head= creat();

print(head);

cout<<"\nint:  ";

cin>>del_num;

head= del(head,del_num);

print(head);

cout<<"\npleaseinput the insert data:  ";

cin>>insert_num;

head= insert(head,insert_num);

print(head);

return0;

資料結構(線性表)

1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...

資料結構 線性表

線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...

資料結構 線性表

include using namespace std define listsize 100 表空間的大小可根據實際需要而定,這裡假設為100 typedef int datatype datatype的型別可根據實際情況而定,這裡假設為int typedef struct seqlist 初始化...