順序錶鏈表聯合操作

2021-08-17 12:08:23 字數 3395 閱讀 6130

#ifndef _linlist_h_

#define _linlist_h_

#endif  

#include

#include

#include

#include

typedef int status;

typedef int datatype;

typedef int status;

typedef int datatype;

typedef struct node

lnode,*linlist;

status listinit(lnode **l)

status listlength (lnode *l)

return (num);

}status listdestory(lnode **l)

*l=null;

}status listinsert(lnode *l,int i)

q=(lnode*)malloc(sizeof(lnode));

printf ("\n請輸入學生資訊: ");  scanf ("%ld%s%d",&q->number,q->name,&q->grade);

//q->data=x;

q->next=p->next;

p->next=q;

}status listget(lnode *l,int i)

printf ("\n學生資訊為: %ld--- %s ----%d\n",p->number,p->name,p->grade);

// q=p;

//*x=q->data;

}status listdelete(lnode *l,int i)

q=p->next;

p->next=p->next->next;

free(q);

}status listsearchname (lnode *l,char a[20])

}if (flag==0)

printf ("\n查無此人!\n");}/*

status listsq (lnode *l)

else

q=q->next;}}

return 0;}*/

status listlin ()

for (i=1;i<=num;i++)

break;

case 2:

printf ("\n請輸入你想查詢的學生位置:  ");

scanf ("%d",&num);

listget(l,num);     

break;

case 3:

if(listlength(l)==0||l==null)

printf ("鍊錶中不存在元素!!");

else }

printf("\n\n");

break;

case 4:

printf ("\n請輸入你想要查詢的學生姓名:  ");

scanf ("%s",&a);

listsearchname (l,a);

break;

case 5:

printf ("\n請輸入您想插入資訊的位置:   ");

scanf ("%d",&num);

if(listinsert(l,num))

printf ("\n 學生資訊插入成功!");

else

printf ("\n 學生資訊插入失敗!");

break;

case 6:

printf ("\n請輸入您想刪除的元素位置:  ");

scanf ("%d",&num);

if(listdelete(l,num))

printf ("\n 學生資訊刪除成功!");

else

printf ("\n 學生資訊刪除失敗!");

break;

case 7:

if (listdestory(&l))

printf ("\n銷毀成功!\n\n");

else

printf ("\n銷毀失敗!\n\n");

break;

case 8:

if (listlength(l))

else

printf ("\n獲取失敗!\n\n");

break;

case 9:

choose=0;

break;                             }}

return 0;

}#ifndef _seqlist_h_     //  if not define

#define _seqlist_h_     

#endif                 //end if

#include "stdio.h"

#include "math.h"

#include

#include

#include

#define  maxsize 100

typedef int datatype;

//#define maxsize 10

//typedef int datatype;

typedef struct

student;

typedef struct  

seqlist;

//初始化列表

int listinitiate1(seqlist *l)

//得到列表的大小

int listlength1(seqlist *l)

int listclean1(seqlist *l)

int listinsert1( seqlist *l, int i)

else if ( i<0 || i>l->size)

else

printf ("\n請輸入學生資訊: ");  scanf ("%ld%s%d",&l->stu[i].numbr,l->stu[i].nam,&l->stu[i].grad);

l->size++;

return 1;}}

int listdelete1( seqlist *l, int i)

else if ( i<0 || i>=l->size)

else

l->size--;

return 1;}}

int listget1 (seqlist *l, int i)

else

} int listdestory1(seqlist *l)

int listsearch1 (seqlist *l,char a)

}if (flag==0)

printf ("沒有找到該學生的資訊!");

}int listseq ()}}

資料結構(順序錶鏈表)

剛學資料結構,被表弄得有點懵。順序表,說它是陣列,它也不是陣列,畢竟陣列固定了長度,而它又不像鍊錶一樣那麼的直觀 各種操作可以通過畫圖來清楚思路 先說順序表和陣列的區別。順序表是在計算機記憶體中用陣列的形式儲存的線性表,用一組位址連續的儲存單元一次儲存資料元素的線性結構。而陣列是從物理儲存儲存的角度...

面試題(1)順序錶鏈表

1.刪除鍊錶中等於給定值 val 的所有節點。definition for singly linked list.struct listnode struct listnode removeelements struct listnode head,int val else if head val ...

順序線性表單鏈表的操作

單鏈表操作.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std define ok 1 define error 0 define true 1 define false 0 typedef int elemtype type...