資料結構中,如何把30,15,21用連結串列儲存

2025-03-18 03:15:16 字數 4052 閱讀 9189

1樓:智者總要千慮

1.用頭插法。因為資料追加和刪除比較多,追加的話,頭插法可以直接洞襪插,用尾插降低了時間效率,刪除用兩個一樣。

2./*結構體定義*/

struct client{

char account[14];

char name[10];

char identity[20];

char address[15];

long int money;

連結串列結點定義*/

struct node{

struct client band_inf;

struct node *next;

應該把結構體結點定義成連結串列的成員,這樣連結串列才對。如果像你那樣定義的話,完全不用定義結構體,連結串列就搞定了。因為你在連結串列裡面把結構的成員都又定義了。

1),定義結點:p1=(struct node*)malloc(sizeof(struct node)) 表示定義乙個node型的結點指標。

使用,這個要看猛顫槐具體怎麼用了。比如說刪除searchp,priorp是searchp的前面乙個結點,這樣寫。

priorp->next=searchp->next;

delete searchp; 即可。

插入newnode在searchp的後面,可以這樣:

newnode->next=searchp->next;

searchp->next=newnode;

2)廣義的二進位就是檔案,你存成什麼檔案都行。.txt就行。

3)有儲存的裡面有個fwrite就是寫入檔案,在判斷的過程中,能寫枝友入檔案的就已經寫入了。 望。

資料結構中,連結串列的結點data怎麼儲存一維陣列,怎麼定義結構體

2樓:網友

將結點的資料型別改成一維陣列就可以了。

#define size 100 // 陣列大小struct node;

3樓:匿名使用者

結構體裡定義乙個相應型別的指標型別變數既可。

4樓:匿名使用者

知道推送終於換句子了?

如何在資料結構中,以二叉連結串列為儲存結構,建立一棵二叉樹,輸出其先序,中序,後序遍歷序列,統計其葉子

5樓:兩個韭菜餅

隨便一本資料結構的入門書上都有。

資料結構中的,連結串列,樹,棧都指什麼了

6樓:網友

連結串列是一種儲存結構(也叫做物理結構),使用除了本身的資料域以外的附加資料域表示資料元素的邏輯關係,一般用指標實現。

樹是一種邏輯結構,一般資料元素邏輯上只有乙個前驅(唯一的根沒有前驅),有多個後繼。

棧是一種特殊的線性表,其插入刪除點都限制在了線性表的某一端,該端點通稱棧頂,另乙個端點則稱為棧底,棧的特性是先進後出(也叫做後進先出)

在資料結構中怎樣進行單連結串列的輸入輸出?

7樓:聆聽海的聲音

//建立乙個單連結串列。

#include

#include

typedef struct lnode * pointer;

struct lnode

typedef pointer lklist;

void create(lklist &l)r->next=null;

void output(lklist l) //輸出單連結串列的元素}

8樓:du瓶邪

內容包括連結串列的建立,增加、刪除節點,連結串列的逆序、排序和銷燬等。

#include

#include

typedef struct node

node;/連結串列的操作,以有頭節點為例,無頭節點類似node* head = null;

建立連結串列,頭結點data=0,pnext=null;

bool createnodelist()else

/增加節點。

bool addnode(node* node)node* p = head->pnext;

node* q = head;

while(null != p)

q->pnext = node;

node->pnext = null;

return true;

/刪除節點。

bool deletenode(int index)node* p = head->pnext;

int length = 0;

while(null != p)

if(length < index)

elsenode* t = p->pnext;

q->pnext = t;

free(p);

return true;

逆序。void reversenodelist()//如果連結串列長度為1

if(head->pnext == null)node* p = head->pnext;

node* q = p->pnext;

node* t = null;

while(null != q)

head->pnext->pnext = null;

head->pnext = p;

/排序(降序)

void sort()

if(phead->pnext == null)node* pi = phead->pnext;

node* pj = pi->pnext;

for(;pi != null;pi=pi->pnext)}

銷燬。void destroynodelist()if(null == head->pnext)node* p = head->pnext;

while(null != p)

free(head);

head = null;

void main()

c語言中怎樣用連結串列儲存結構體資料(動態資料結構)

9樓:網友

很簡單的,你這幾這麼就可以了:

struct client;

然後,程式裡只需要儲存第乙個節點就行了:

client* head = (client*)malloc(sizeof(client));//第乙個節點這麼產生。

head->pnext = null; //該表只有乙個節點,所以第乙個也是最後乙個,別忘記賦0

插入的時候從頭部插入就行了。

client* p = (client*)malloc(sizeof(client));

p->pnext = head;

head = p; //將原來的頭付給p的pnext指標,然後原來儲存頭元素的指標用p取代。

遍歷連結串列更加容易了。

client* pnode = head;

while (pnode)

儲存進檔案的時候相當於遍歷一邊所有的元素,讀取的時候則乙個乙個讀取,然後重新插入連結串列。最後,提醒一下的是別忘記用free釋放由malloc分配的記憶體。

另外,考慮使用c++,可以更好的管理記憶體,思路也會更清晰。而且,如果是為了應用,根本不需要自己開發連結串列類,用stl就可以了,stl不僅提供雙向連結串列,還有map,hashmap等資料結構,非常適合特別大的資料量儲存和查詢,連結串列的查詢很慢的,找乙個資料相當於要把連結串列全部過一遍。

10樓:斯坦恩貝格(北京)電子****

連結串列抄有多種形式,如:單向連結串列,雙向連結串列,單向迴圈連結串列,雙向迴圈連結串列。將連結串列結構定義為list_t,則該型別中一定(至少)存在乙個指向下一節點的指標list_t *next;除了這個指標,list_t 中可以包含其它型別的資料,包括結構體變數。

比如:typedef struct list_t;

11樓:網友

p1=(struct studinf*)malloc(sizeof(struct studinf)) 表示開闢一段strunt 1.結構抄體和共用體型別資料的定義方法和引用方法。 2.

用指標和結構體構成。

在資料結構中,從邏輯上可以把資料結構分成

1 c2 a 3 a4 a 5 d6 a 8 b9 b 10 a caaad a bca 1 資料結構是一門研究非數值計算的程式設計問題中計算機的a以及它們之間的 b 和運算等的學科。e68a84e8a2ad62616964757a686964616f31333431376535 a.資料元素 b....

資料結構中的作用是什麼,資料結構中的作用

qstack s是 一個引用的固定用法,而不是取地址,例如,int a int b a 這就表明了b是專a的 引用 即屬a的別名。是c 中的引用符號,用作函式形參是表明傳遞的是實參的一個引用 即實參的一個別名 這樣在函式中對形參操作會影響到實參,通常用 來通過函式改變實參的值。如果沒有 則傳遞的只是...

資料結構中圖的概念,C語言資料結構中圖的頂點向量是什麼東西?

圖是一種資料元素間為多對多關係的資料結構,加上一組基本操作構成的抽象資料型別。這是教材上的定義 圖是由結點的有窮集合v和邊的集合e組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關係。在上面兩個圖結構中,一個是有...